From 0b429a86c70b78d28301f98410a9b0a46b2521b6 Mon Sep 17 00:00:00 2001 From: Joe Hoyle Date: Tue, 12 May 2015 16:49:54 -0400 Subject: [PATCH] Latest aws sdk --- .../Aws/AutoScaling/AutoScalingClient.php | 17 +- .../Resources/autoscaling-2011-01-01.php | 893 +- .../CloudFormation/CloudFormationClient.php | 9 +- .../Exception/AlreadyExistsException.php | 2 +- .../InsufficientCapabilitiesException.php | 2 +- .../Exception/LimitExceededException.php | 2 +- .../Resources/cloudformation-2010-05-15.php | 241 +- .../Aws/CloudFront/CloudFrontClient.php | 37 +- .../Aws/CloudFront/CloudFrontSignature.php | 4 +- .../CloudFront/Enum/GeoRestrictionType.php | 29 + .../Aws/CloudFront/Enum/SSLSupportMethod.php | 28 + .../CloudFront/Enum/ViewerProtocolPolicy.php | 1 + ...nvalidGeoRestrictionParameterException.php | 22 + .../InvalidLocationCodeException.php | 22 + .../Resources/cloudfront-2012-05-05.php | 26 + .../Resources/cloudfront-2014-11-06.php | 5744 ++++++ inc/aws-sdk/Aws/CloudHsm/CloudHsmClient.php | 73 + .../CloudHsm/Exception/CloudHsmException.php | 24 + .../Resources/cloudhsm-2014-05-30.php | 1178 ++ .../Aws/CloudSearch/CloudSearchClient.php | 59 +- .../Aws/CloudSearch/Enum/IndexFieldType.php | 9 + .../Aws/CloudSearch/Enum/OptionState.php | 1 + .../Resources/cloudsearch-2011-02-01.php | 32 +- .../Resources/cloudsearch-2013-01-01.php | 3497 ++++ .../CloudSearchDomainClient.php | 54 + .../CloudSearchDomainClientBuilder.php | 122 + .../Exception/CloudSearchDomainException.php | 10 + .../cloudsearchdomain-2013-01-01.php | 317 + .../Aws/CloudTrail/CloudTrailClient.php | 8 +- .../InsufficientS3BucketPolicyException.php | 2 +- .../InsufficientSnsTopicPolicyException.php | 2 +- .../InvalidS3BucketNameException.php | 2 +- .../Exception/InvalidS3PrefixException.php | 2 +- .../InvalidSnsTopicNameException.php | 2 +- .../Exception/InvalidTrailNameException.php | 2 +- ...MaximumNumberOfTrailsExceededException.php | 2 +- .../S3BucketDoesNotExistException.php | 2 +- .../Exception/TrailAlreadyExistsException.php | 2 +- .../Exception/TrailNotFoundException.php | 2 +- .../Exception/TrailNotProvidedException.php | 2 +- .../Aws/CloudTrail/LogFileIterator.php | 266 + inc/aws-sdk/Aws/CloudTrail/LogFileReader.php | 56 + .../Aws/CloudTrail/LogRecordIterator.php | 180 + .../Resources/cloudtrail-2013-11-01.php | 453 +- .../Aws/CloudWatch/CloudWatchClient.php | 6 +- .../Resources/cloudwatch-2010-08-01.php | 205 +- .../CloudWatchLogs/CloudWatchLogsClient.php | 58 + .../Exception/CloudWatchLogsException.php | 10 + .../Resources/cloudwatchlogs-2014-03-28.php | 1122 + .../Aws/CodeDeploy/CodeDeployClient.php | 90 + .../Exception/CodeDeployException.php | 10 + .../Resources/codedeploy-2014-10-06.php | 3071 +++ .../CognitoIdentity/CognitoIdentityClient.php | 83 + .../Exception/CognitoIdentityException.php | 10 + .../Resources/cognitoidentity-2014-06-30.php | 1486 ++ .../Aws/CognitoSync/CognitoSyncClient.php | 60 + .../Exception/CognitoSyncException.php | 10 + .../Resources/cognitosync-2014-06-30.php | 1405 ++ inc/aws-sdk/Aws/Common/Aws.php | 3 +- .../Aws/Common/Client/AbstractClient.php | 128 +- .../Aws/Common/Client/ClientBuilder.php | 256 +- .../Aws/Common/Client/DefaultClient.php | 7 +- .../Client/ExpiredCredentialsChecker.php | 2 +- .../Aws/Common/Client/UploadBodyListener.php | 2 +- .../Aws/Common/Command/AwsQueryVisitor.php | 20 +- .../Aws/Common/Credentials/Credentials.php | 217 +- .../Common/Credentials/NullCredentials.php | 68 + .../RefreshableInstanceProfileCredentials.php | 4 +- inc/aws-sdk/Aws/Common/Enum/ClientOptions.php | 34 +- inc/aws-sdk/Aws/Common/Enum/Region.php | 6 + .../Parser/JsonQueryExceptionParser.php | 6 +- .../Exception/ServiceResponseException.php | 38 + inc/aws-sdk/Aws/Common/Facade/Facade.php | 4 +- .../Aws/Common/Facade/FacadeInterface.php | 2 + .../Aws/Common/Facade/facade-classes.php | 8 + inc/aws-sdk/Aws/Common/Hash/HashUtils.php | 4 + .../Common/Iterator/AwsResourceIterator.php | 72 +- .../Iterator/AwsResourceIteratorFactory.php | 85 +- .../MultipartUpload/AbstractUploadBuilder.php | 10 +- .../Aws/Common/Resources/aws-config.php | 101 + .../Aws/Common/Resources/public-endpoints.php | 79 + .../Aws/Common/RulesEndpointProvider.php | 67 + .../Common/Signature/AbstractSignature.php | 68 +- .../Common/Signature/SignatureInterface.php | 15 + .../Common/Signature/SignatureListener.php | 5 +- .../Aws/Common/Signature/SignatureV2.php | 9 +- .../Aws/Common/Signature/SignatureV3Https.php | 7 +- .../Aws/Common/Signature/SignatureV4.php | 388 +- .../Aws/ConfigService/ConfigServiceClient.php | 71 + .../Exception/ConfigServiceException.php | 10 + .../Resources/configservice-2014-11-12.php | 838 + .../Aws/DataPipeline/DataPipelineClient.php | 27 +- .../Resources/datapipeline-2012-10-29.php | 483 +- .../Aws/DirectConnect/DirectConnectClient.php | 26 +- .../Resources/directconnect-2012-10-25.php | 20 + inc/aws-sdk/Aws/DynamoDb/DynamoDbClient.php | 87 +- inc/aws-sdk/Aws/DynamoDb/DynamoDbCommand.php | 100 + inc/aws-sdk/Aws/DynamoDb/Enum/IndexStatus.php | 30 + .../DynamoDb/Enum/ReturnConsumedCapacity.php | 1 + .../Exception/LimitExceededException.php | 2 +- .../Aws/DynamoDb/Iterator/ItemIterator.php | 8 +- inc/aws-sdk/Aws/DynamoDb/Marshaler.php | 173 + inc/aws-sdk/Aws/DynamoDb/Model/Attribute.php | 3 + .../Model/BatchRequest/PutRequest.php | 28 +- .../Model/BatchRequest/WriteRequestBatch.php | 2 +- .../WriteRequestBatchTransfer.php | 107 +- inc/aws-sdk/Aws/DynamoDb/Model/Item.php | 3 + .../Resources/dynamodb-2011-12-05.php | 22 + .../Resources/dynamodb-2012-08-10.php | 3058 +-- .../AbstractLockingStrategy.php | 16 +- inc/aws-sdk/Aws/Ec2/CopySnapshotListener.php | 82 + inc/aws-sdk/Aws/Ec2/Ec2Client.php | 75 +- inc/aws-sdk/Aws/Ec2/Enum/InstanceType.php | 30 +- inc/aws-sdk/Aws/Ec2/Enum/RouteOrigin.php | 29 + .../Aws/Ec2/Resources/ec2-2015-03-01.php | 17121 ++++++++++++++++ inc/aws-sdk/Aws/Ecs/EcsClient.php | 84 + .../Aws/Ecs/Exception/EcsException.php | 9 + .../Aws/Ecs/Resources/ecs-2014-11-13.php | 3257 +++ .../Aws/ElastiCache/ElastiCacheClient.php | 18 +- .../CacheClusterAlreadyExistsException.php | 2 +- ...eservedCacheNodeAlreadyExistsException.php | 2 +- .../Resources/elasticache-2015-02-02.php | 4099 ++++ .../ElasticBeanstalkClient.php | 11 +- .../Resources/elasticbeanstalk-2010-12-01.php | 241 +- .../ElasticLoadBalancingClient.php | 9 +- .../elasticloadbalancing-2012-06-01.php | 463 +- .../ElasticTranscoderClient.php | 6 +- .../elastictranscoder-2012-09-25.php | 2361 ++- inc/aws-sdk/Aws/Emr/EmrClient.php | 8 +- .../Aws/Emr/Resources/emr-2009-03-31.php | 399 +- inc/aws-sdk/Aws/Glacier/GlacierClient.php | 36 +- .../Aws/Glacier/GlacierUploadListener.php | 4 +- .../MultipartUpload/AbstractTransfer.php | 4 +- .../MultipartUpload/ParallelTransfer.php | 6 +- .../Model/MultipartUpload/SerialTransfer.php | 4 +- .../Model/MultipartUpload/TransferState.php | 4 +- .../Model/MultipartUpload/UploadBuilder.php | 16 +- .../MultipartUpload/UploadPartContext.php | 2 +- .../Glacier/Resources/glacier-2012-06-01.php | 323 + inc/aws-sdk/Aws/Iam/IamClient.php | 37 +- .../Aws/Iam/Resources/iam-2010-05-08.php | 4574 ++++- .../Aws/ImportExport/ImportExportClient.php | 7 +- .../Aws/ImportExport/JobManifestListener.php | 2 +- .../Resources/importexport-2010-06-01.php | 253 +- .../Aws/Kinesis/Enum/ShardIteratorType.php | 30 + inc/aws-sdk/Aws/Kinesis/Enum/StreamStatus.php | 30 + .../Exception/ExpiredIteratorException.php | 22 + .../Exception/InvalidArgumentException.php | 22 + .../Kinesis/Exception/KinesisException.php | 24 + .../Exception/LimitExceededException.php | 22 + ...ProvisionedThroughputExceededException.php | 22 + .../Exception/ResourceInUseException.php | 22 + .../Exception/ResourceNotFoundException.php | 22 + inc/aws-sdk/Aws/Kinesis/KinesisClient.php | 83 + .../Kinesis/Resources/kinesis-2013-12-02.php | 1015 + .../Aws/Kms/Exception/KmsException.php | 10 + inc/aws-sdk/Aws/Kms/KmsClient.php | 83 + .../Aws/Kms/Resources/kms-2014-11-01.php | 1951 ++ .../Aws/Lambda/Exception/LambdaException.php | 10 + inc/aws-sdk/Aws/Lambda/LambdaClient.php | 78 + .../Lambda/Resources/lambda-2014-11-11.php | 742 + .../Lambda/Resources/lambda-2015-03-31.php | 1058 + .../Exception/MachineLearningException.php | 10 + .../MachineLearning/MachineLearningClient.php | 74 + .../PredictEndpointListener.php | 35 + .../Resources/machinelearning-2014-12-12.php | 2548 +++ inc/aws-sdk/Aws/OpsWorks/OpsWorksClient.php | 19 +- .../Resources/opsworks-2013-02-18.php | 1348 +- .../DBSubnetGroupNotAllowedException.php | 22 + .../DBUpgradeDependencyFailureException.php | 2 +- .../InvalidDBSubnetGroupException.php | 22 + .../Rds/Exception/InvalidSubnetException.php | 2 +- inc/aws-sdk/Aws/Rds/RdsClient.php | 19 +- .../Aws/Rds/Resources/rds-2014-10-31.php | 6479 ++++++ .../AuthorizationQuotaExceededException.php | 2 +- ...alidClusterSecurityGroupStateException.php | 2 +- .../InvalidClusterSnapshotStateException.php | 2 +- .../Exception/UnsupportedOptionException.php | 2 +- inc/aws-sdk/Aws/Redshift/RedshiftClient.php | 15 +- .../Resources/redshift-2012-12-01.php | 1191 +- inc/aws-sdk/Aws/Route53/Enum/Action.php | 1 + .../Aws/Route53/Enum/HealthCheckType.php | 3 + .../IncompatibleVersionException.php | 22 + .../Route53/Resources/route53-2013-04-01.php | 2834 +++ inc/aws-sdk/Aws/Route53/Route53Client.php | 29 +- .../Exception/Route53DomainsException.php | 10 + .../Resources/route53domains-2014-05-15.php | 2130 ++ .../Route53Domains/Route53DomainsClient.php | 48 + inc/aws-sdk/Aws/S3/AcpListener.php | 2 +- inc/aws-sdk/Aws/S3/BucketStyleListener.php | 10 +- inc/aws-sdk/Aws/S3/Enum/EncodingType.php | 27 + .../S3/Exception/NoSuchTagSetException.php | 22 + .../S3/IncompleteMultipartUploadChecker.php | 56 + .../Aws/S3/Iterator/ListObjectsIterator.php | 7 +- inc/aws-sdk/Aws/S3/Model/Acp.php | 14 +- inc/aws-sdk/Aws/S3/Model/AcpBuilder.php | 14 +- inc/aws-sdk/Aws/S3/Model/ClearBucket.php | 6 +- .../Aws/S3/Model/DeleteObjectsBatch.php | 8 +- .../Aws/S3/Model/DeleteObjectsTransfer.php | 2 +- inc/aws-sdk/Aws/S3/Model/Grant.php | 4 +- inc/aws-sdk/Aws/S3/Model/Grantee.php | 2 +- .../MultipartUpload/AbstractTransfer.php | 4 +- .../MultipartUpload/ParallelTransfer.php | 6 +- .../Model/MultipartUpload/SerialTransfer.php | 2 +- .../Model/MultipartUpload/UploadBuilder.php | 28 +- inc/aws-sdk/Aws/S3/Model/PostObject.php | 58 +- .../Aws/S3/Resources/s3-2006-03-01.php | 1948 +- inc/aws-sdk/Aws/S3/ResumableDownload.php | 4 +- inc/aws-sdk/Aws/S3/S3Client.php | 177 +- inc/aws-sdk/Aws/S3/S3Md5Listener.php | 73 + inc/aws-sdk/Aws/S3/S3Signature.php | 99 +- inc/aws-sdk/Aws/S3/S3SignatureInterface.php | 28 +- inc/aws-sdk/Aws/S3/S3SignatureV4.php | 60 + inc/aws-sdk/Aws/S3/SocketTimeoutChecker.php | 12 - inc/aws-sdk/Aws/S3/SseCpkListener.php | 68 + inc/aws-sdk/Aws/S3/StreamWrapper.php | 1336 +- .../Aws/S3/Sync/AbstractSyncBuilder.php | 47 +- .../Aws/S3/Sync/ChangedFilesIterator.php | 24 +- inc/aws-sdk/Aws/S3/Sync/DownloadSync.php | 3 +- .../Aws/S3/Sync/DownloadSyncBuilder.php | 2 +- inc/aws-sdk/Aws/S3/Sync/KeyConverter.php | 23 +- inc/aws-sdk/Aws/S3/Sync/UploadSync.php | 19 +- inc/aws-sdk/Aws/S3/Sync/UploadSyncBuilder.php | 30 +- .../Aws/Ses/Resources/ses-2010-12-01.php | 39 +- inc/aws-sdk/Aws/Ses/SesClient.php | 8 +- .../Resources/simpledb-2009-04-15.php | 20 +- inc/aws-sdk/Aws/SimpleDb/SimpleDbClient.php | 19 +- .../Sns/MessageValidator/MessageValidator.php | 17 +- .../Aws/Sns/Resources/sns-2010-03-31.php | 86 +- inc/aws-sdk/Aws/Sns/SnsClient.php | 6 +- inc/aws-sdk/Aws/Sqs/Enum/QueueAttribute.php | 1 + inc/aws-sdk/Aws/Sqs/QueueUrlListener.php | 2 +- .../Aws/Sqs/Resources/sqs-2012-11-05.php | 297 +- inc/aws-sdk/Aws/Sqs/SqsClient.php | 8 +- .../Aws/Ssm/Exception/SsmException.php | 24 + .../Aws/Ssm/Resources/ssm-2014-11-06.php | 973 + inc/aws-sdk/Aws/Ssm/SsmClient.php | 69 + .../Resources/storagegateway-2013-06-30.php | 211 +- .../StorageGateway/StorageGatewayClient.php | 8 +- .../Aws/Sts/Resources/sts-2011-06-15.php | 45 + inc/aws-sdk/Aws/Sts/StsClient.php | 11 +- .../CaseCreationLimitExceededException.php | 2 +- .../Exception/CaseIdNotFoundException.php | 2 +- .../InternalServerErrorException.php | 2 +- .../Support/Resources/support-2013-04-15.php | 295 +- inc/aws-sdk/Aws/Support/SupportClient.php | 8 +- .../Aws/Swf/Resources/swf-2012-01-25.php | 222 +- inc/aws-sdk/Aws/Swf/SwfClient.php | 6 +- .../Exception/WorkSpacesException.php | 10 + .../Resources/workspaces-2015-04-08.php | 679 + .../Aws/WorkSpaces/WorkSpacesClient.php | 51 + 251 files changed, 83395 insertions(+), 7542 deletions(-) create mode 100644 inc/aws-sdk/Aws/CloudFront/Enum/GeoRestrictionType.php create mode 100644 inc/aws-sdk/Aws/CloudFront/Enum/SSLSupportMethod.php create mode 100644 inc/aws-sdk/Aws/CloudFront/Exception/InvalidGeoRestrictionParameterException.php create mode 100644 inc/aws-sdk/Aws/CloudFront/Exception/InvalidLocationCodeException.php create mode 100644 inc/aws-sdk/Aws/CloudFront/Resources/cloudfront-2014-11-06.php create mode 100644 inc/aws-sdk/Aws/CloudHsm/CloudHsmClient.php create mode 100644 inc/aws-sdk/Aws/CloudHsm/Exception/CloudHsmException.php create mode 100644 inc/aws-sdk/Aws/CloudHsm/Resources/cloudhsm-2014-05-30.php create mode 100644 inc/aws-sdk/Aws/CloudSearch/Resources/cloudsearch-2013-01-01.php create mode 100644 inc/aws-sdk/Aws/CloudSearchDomain/CloudSearchDomainClient.php create mode 100644 inc/aws-sdk/Aws/CloudSearchDomain/CloudSearchDomainClientBuilder.php create mode 100644 inc/aws-sdk/Aws/CloudSearchDomain/Exception/CloudSearchDomainException.php create mode 100644 inc/aws-sdk/Aws/CloudSearchDomain/Resources/cloudsearchdomain-2013-01-01.php create mode 100644 inc/aws-sdk/Aws/CloudTrail/LogFileIterator.php create mode 100644 inc/aws-sdk/Aws/CloudTrail/LogFileReader.php create mode 100644 inc/aws-sdk/Aws/CloudTrail/LogRecordIterator.php create mode 100644 inc/aws-sdk/Aws/CloudWatchLogs/CloudWatchLogsClient.php create mode 100644 inc/aws-sdk/Aws/CloudWatchLogs/Exception/CloudWatchLogsException.php create mode 100644 inc/aws-sdk/Aws/CloudWatchLogs/Resources/cloudwatchlogs-2014-03-28.php create mode 100644 inc/aws-sdk/Aws/CodeDeploy/CodeDeployClient.php create mode 100644 inc/aws-sdk/Aws/CodeDeploy/Exception/CodeDeployException.php create mode 100644 inc/aws-sdk/Aws/CodeDeploy/Resources/codedeploy-2014-10-06.php create mode 100644 inc/aws-sdk/Aws/CognitoIdentity/CognitoIdentityClient.php create mode 100644 inc/aws-sdk/Aws/CognitoIdentity/Exception/CognitoIdentityException.php create mode 100644 inc/aws-sdk/Aws/CognitoIdentity/Resources/cognitoidentity-2014-06-30.php create mode 100644 inc/aws-sdk/Aws/CognitoSync/CognitoSyncClient.php create mode 100644 inc/aws-sdk/Aws/CognitoSync/Exception/CognitoSyncException.php create mode 100644 inc/aws-sdk/Aws/CognitoSync/Resources/cognitosync-2014-06-30.php create mode 100644 inc/aws-sdk/Aws/Common/Credentials/NullCredentials.php create mode 100644 inc/aws-sdk/Aws/Common/Resources/public-endpoints.php create mode 100644 inc/aws-sdk/Aws/Common/RulesEndpointProvider.php create mode 100644 inc/aws-sdk/Aws/ConfigService/ConfigServiceClient.php create mode 100644 inc/aws-sdk/Aws/ConfigService/Exception/ConfigServiceException.php create mode 100644 inc/aws-sdk/Aws/ConfigService/Resources/configservice-2014-11-12.php create mode 100644 inc/aws-sdk/Aws/DynamoDb/DynamoDbCommand.php create mode 100644 inc/aws-sdk/Aws/DynamoDb/Enum/IndexStatus.php create mode 100644 inc/aws-sdk/Aws/DynamoDb/Marshaler.php create mode 100644 inc/aws-sdk/Aws/Ec2/CopySnapshotListener.php create mode 100644 inc/aws-sdk/Aws/Ec2/Enum/RouteOrigin.php create mode 100644 inc/aws-sdk/Aws/Ec2/Resources/ec2-2015-03-01.php create mode 100644 inc/aws-sdk/Aws/Ecs/EcsClient.php create mode 100644 inc/aws-sdk/Aws/Ecs/Exception/EcsException.php create mode 100644 inc/aws-sdk/Aws/Ecs/Resources/ecs-2014-11-13.php create mode 100644 inc/aws-sdk/Aws/ElastiCache/Resources/elasticache-2015-02-02.php create mode 100644 inc/aws-sdk/Aws/Kinesis/Enum/ShardIteratorType.php create mode 100644 inc/aws-sdk/Aws/Kinesis/Enum/StreamStatus.php create mode 100644 inc/aws-sdk/Aws/Kinesis/Exception/ExpiredIteratorException.php create mode 100644 inc/aws-sdk/Aws/Kinesis/Exception/InvalidArgumentException.php create mode 100644 inc/aws-sdk/Aws/Kinesis/Exception/KinesisException.php create mode 100644 inc/aws-sdk/Aws/Kinesis/Exception/LimitExceededException.php create mode 100644 inc/aws-sdk/Aws/Kinesis/Exception/ProvisionedThroughputExceededException.php create mode 100644 inc/aws-sdk/Aws/Kinesis/Exception/ResourceInUseException.php create mode 100644 inc/aws-sdk/Aws/Kinesis/Exception/ResourceNotFoundException.php create mode 100644 inc/aws-sdk/Aws/Kinesis/KinesisClient.php create mode 100644 inc/aws-sdk/Aws/Kinesis/Resources/kinesis-2013-12-02.php create mode 100644 inc/aws-sdk/Aws/Kms/Exception/KmsException.php create mode 100644 inc/aws-sdk/Aws/Kms/KmsClient.php create mode 100644 inc/aws-sdk/Aws/Kms/Resources/kms-2014-11-01.php create mode 100644 inc/aws-sdk/Aws/Lambda/Exception/LambdaException.php create mode 100644 inc/aws-sdk/Aws/Lambda/LambdaClient.php create mode 100644 inc/aws-sdk/Aws/Lambda/Resources/lambda-2014-11-11.php create mode 100644 inc/aws-sdk/Aws/Lambda/Resources/lambda-2015-03-31.php create mode 100644 inc/aws-sdk/Aws/MachineLearning/Exception/MachineLearningException.php create mode 100644 inc/aws-sdk/Aws/MachineLearning/MachineLearningClient.php create mode 100644 inc/aws-sdk/Aws/MachineLearning/PredictEndpointListener.php create mode 100644 inc/aws-sdk/Aws/MachineLearning/Resources/machinelearning-2014-12-12.php create mode 100644 inc/aws-sdk/Aws/Rds/Exception/DBSubnetGroupNotAllowedException.php create mode 100644 inc/aws-sdk/Aws/Rds/Exception/InvalidDBSubnetGroupException.php create mode 100644 inc/aws-sdk/Aws/Rds/Resources/rds-2014-10-31.php create mode 100644 inc/aws-sdk/Aws/Route53/Exception/IncompatibleVersionException.php create mode 100644 inc/aws-sdk/Aws/Route53/Resources/route53-2013-04-01.php create mode 100644 inc/aws-sdk/Aws/Route53Domains/Exception/Route53DomainsException.php create mode 100644 inc/aws-sdk/Aws/Route53Domains/Resources/route53domains-2014-05-15.php create mode 100644 inc/aws-sdk/Aws/Route53Domains/Route53DomainsClient.php create mode 100644 inc/aws-sdk/Aws/S3/Enum/EncodingType.php create mode 100644 inc/aws-sdk/Aws/S3/Exception/NoSuchTagSetException.php create mode 100644 inc/aws-sdk/Aws/S3/IncompleteMultipartUploadChecker.php create mode 100644 inc/aws-sdk/Aws/S3/S3Md5Listener.php create mode 100644 inc/aws-sdk/Aws/S3/S3SignatureV4.php create mode 100644 inc/aws-sdk/Aws/S3/SseCpkListener.php create mode 100644 inc/aws-sdk/Aws/Ssm/Exception/SsmException.php create mode 100644 inc/aws-sdk/Aws/Ssm/Resources/ssm-2014-11-06.php create mode 100644 inc/aws-sdk/Aws/Ssm/SsmClient.php create mode 100644 inc/aws-sdk/Aws/WorkSpaces/Exception/WorkSpacesException.php create mode 100644 inc/aws-sdk/Aws/WorkSpaces/Resources/workspaces-2015-04-08.php create mode 100644 inc/aws-sdk/Aws/WorkSpaces/WorkSpacesClient.php diff --git a/inc/aws-sdk/Aws/AutoScaling/AutoScalingClient.php b/inc/aws-sdk/Aws/AutoScaling/AutoScalingClient.php index 1b4eb91..499109f 100755 --- a/inc/aws-sdk/Aws/AutoScaling/AutoScalingClient.php +++ b/inc/aws-sdk/Aws/AutoScaling/AutoScalingClient.php @@ -26,20 +26,26 @@ use Guzzle\Service\Resource\ResourceIteratorInterface; /** * Client to interact with Auto Scaling * + * @method Model attachInstances(array $args = array()) {@command AutoScaling AttachInstances} + * @method Model completeLifecycleAction(array $args = array()) {@command AutoScaling CompleteLifecycleAction} * @method Model createAutoScalingGroup(array $args = array()) {@command AutoScaling CreateAutoScalingGroup} * @method Model createLaunchConfiguration(array $args = array()) {@command AutoScaling CreateLaunchConfiguration} * @method Model createOrUpdateTags(array $args = array()) {@command AutoScaling CreateOrUpdateTags} * @method Model deleteAutoScalingGroup(array $args = array()) {@command AutoScaling DeleteAutoScalingGroup} * @method Model deleteLaunchConfiguration(array $args = array()) {@command AutoScaling DeleteLaunchConfiguration} + * @method Model deleteLifecycleHook(array $args = array()) {@command AutoScaling DeleteLifecycleHook} * @method Model deleteNotificationConfiguration(array $args = array()) {@command AutoScaling DeleteNotificationConfiguration} * @method Model deletePolicy(array $args = array()) {@command AutoScaling DeletePolicy} * @method Model deleteScheduledAction(array $args = array()) {@command AutoScaling DeleteScheduledAction} * @method Model deleteTags(array $args = array()) {@command AutoScaling DeleteTags} + * @method Model describeAccountLimits(array $args = array()) {@command AutoScaling DescribeAccountLimits} * @method Model describeAdjustmentTypes(array $args = array()) {@command AutoScaling DescribeAdjustmentTypes} * @method Model describeAutoScalingGroups(array $args = array()) {@command AutoScaling DescribeAutoScalingGroups} * @method Model describeAutoScalingInstances(array $args = array()) {@command AutoScaling DescribeAutoScalingInstances} * @method Model describeAutoScalingNotificationTypes(array $args = array()) {@command AutoScaling DescribeAutoScalingNotificationTypes} * @method Model describeLaunchConfigurations(array $args = array()) {@command AutoScaling DescribeLaunchConfigurations} + * @method Model describeLifecycleHookTypes(array $args = array()) {@command AutoScaling DescribeLifecycleHookTypes} + * @method Model describeLifecycleHooks(array $args = array()) {@command AutoScaling DescribeLifecycleHooks} * @method Model describeMetricCollectionTypes(array $args = array()) {@command AutoScaling DescribeMetricCollectionTypes} * @method Model describeNotificationConfigurations(array $args = array()) {@command AutoScaling DescribeNotificationConfigurations} * @method Model describePolicies(array $args = array()) {@command AutoScaling DescribePolicies} @@ -48,12 +54,17 @@ use Guzzle\Service\Resource\ResourceIteratorInterface; * @method Model describeScheduledActions(array $args = array()) {@command AutoScaling DescribeScheduledActions} * @method Model describeTags(array $args = array()) {@command AutoScaling DescribeTags} * @method Model describeTerminationPolicyTypes(array $args = array()) {@command AutoScaling DescribeTerminationPolicyTypes} + * @method Model detachInstances(array $args = array()) {@command AutoScaling DetachInstances} * @method Model disableMetricsCollection(array $args = array()) {@command AutoScaling DisableMetricsCollection} * @method Model enableMetricsCollection(array $args = array()) {@command AutoScaling EnableMetricsCollection} + * @method Model enterStandby(array $args = array()) {@command AutoScaling EnterStandby} * @method Model executePolicy(array $args = array()) {@command AutoScaling ExecutePolicy} + * @method Model exitStandby(array $args = array()) {@command AutoScaling ExitStandby} + * @method Model putLifecycleHook(array $args = array()) {@command AutoScaling PutLifecycleHook} * @method Model putNotificationConfiguration(array $args = array()) {@command AutoScaling PutNotificationConfiguration} * @method Model putScalingPolicy(array $args = array()) {@command AutoScaling PutScalingPolicy} * @method Model putScheduledUpdateGroupAction(array $args = array()) {@command AutoScaling PutScheduledUpdateGroupAction} + * @method Model recordLifecycleActionHeartbeat(array $args = array()) {@command AutoScaling RecordLifecycleActionHeartbeat} * @method Model resumeProcesses(array $args = array()) {@command AutoScaling ResumeProcesses} * @method Model setDesiredCapacity(array $args = array()) {@command AutoScaling SetDesiredCapacity} * @method Model setInstanceHealth(array $args = array()) {@command AutoScaling SetInstanceHealth} @@ -69,8 +80,8 @@ use Guzzle\Service\Resource\ResourceIteratorInterface; * @method ResourceIteratorInterface getDescribeScheduledActionsIterator(array $args = array()) The input array uses the parameters of the DescribeScheduledActions operation * @method ResourceIteratorInterface getDescribeTagsIterator(array $args = array()) The input array uses the parameters of the DescribeTags operation * - * @link http://docs.aws.amazon.com/aws-sdk-php/guide/latest/service-autoscaling.html User guide - * @link http://docs.aws.amazon.com/aws-sdk-php/latest/class-Aws.AutoScaling.AutoScalingClient.html API docs + * @link http://docs.aws.amazon.com/aws-sdk-php/v2/guide/service-autoscaling.html User guide + * @link http://docs.aws.amazon.com/aws-sdk-php/v2/api/class-Aws.AutoScaling.AutoScalingClient.html API docs */ class AutoScalingClient extends AbstractClient { @@ -82,7 +93,7 @@ class AutoScalingClient extends AbstractClient * @param array|Collection $config Client configuration data * * @return self - * @see \Aws\Common\Client\DefaultClient for a list of available configuration options + * @link http://docs.aws.amazon.com/aws-sdk-php/v2/guide/configuration.html#client-configuration-options */ public static function factory($config = array()) { diff --git a/inc/aws-sdk/Aws/AutoScaling/Resources/autoscaling-2011-01-01.php b/inc/aws-sdk/Aws/AutoScaling/Resources/autoscaling-2011-01-01.php index 5d8ffd3..a815a56 100755 --- a/inc/aws-sdk/Aws/AutoScaling/Resources/autoscaling-2011-01-01.php +++ b/inc/aws-sdk/Aws/AutoScaling/Resources/autoscaling-2011-01-01.php @@ -63,6 +63,11 @@ return array ( 'https' => true, 'hostname' => 'autoscaling.sa-east-1.amazonaws.com', ), + 'cn-north-1' => array( + 'http' => true, + 'https' => true, + 'hostname' => 'autoscaling.cn-north-1.amazonaws.com.cn', + ), 'us-gov-west-1' => array( 'http' => true, 'https' => true, @@ -70,6 +75,88 @@ return array ( ), ), 'operations' => array( + 'AttachInstances' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'EmptyOutput', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'AttachInstances', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2011-01-01', + ), + 'InstanceIds' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'InstanceIds.member', + 'items' => array( + 'name' => 'XmlStringMaxLen16', + 'type' => 'string', + 'minLength' => 1, + 'maxLength' => 16, + ), + ), + 'AutoScalingGroupName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 1, + 'maxLength' => 1600, + ), + ), + ), + 'CompleteLifecycleAction' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'EmptyOutput', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'CompleteLifecycleAction', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2011-01-01', + ), + 'LifecycleHookName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 1, + 'maxLength' => 255, + ), + 'AutoScalingGroupName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 1, + 'maxLength' => 1600, + ), + 'LifecycleActionToken' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 36, + 'maxLength' => 36, + ), + 'LifecycleActionResult' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + ), 'CreateAutoScalingGroup' => array( 'httpMethod' => 'POST', 'uri' => '/', @@ -95,12 +182,17 @@ return array ( 'maxLength' => 255, ), 'LaunchConfigurationName' => array( - 'required' => true, 'type' => 'string', 'location' => 'aws.query', 'minLength' => 1, 'maxLength' => 1600, ), + 'InstanceId' => array( + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 1, + 'maxLength' => 16, + ), 'MinSize' => array( 'required' => true, 'type' => 'numeric', @@ -209,11 +301,11 @@ return array ( ), 'errorResponses' => array( array( - 'reason' => 'The named Auto Scaling group or launch configuration already exists.', + 'reason' => 'You already have an Auto Scaling group or launch configuration with this name.', 'class' => 'AlreadyExistsException', ), array( - 'reason' => 'The quota for capacity groups or launch configurations for this customer has already been reached.', + 'reason' => 'The limit for the number of Auto Scaling groups or launch configurations has already been reached.', 'class' => 'LimitExceededException', ), ), @@ -243,7 +335,6 @@ return array ( 'maxLength' => 255, ), 'ImageId' => array( - 'required' => true, 'type' => 'string', 'location' => 'aws.query', 'minLength' => 1, @@ -264,13 +355,35 @@ return array ( 'type' => 'string', ), ), + 'ClassicLinkVPCId' => array( + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 1, + 'maxLength' => 255, + ), + 'ClassicLinkVPCSecurityGroups' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'ClassicLinkVPCSecurityGroups.member', + 'items' => array( + 'name' => 'XmlStringMaxLen255', + 'type' => 'string', + 'minLength' => 1, + 'maxLength' => 255, + ), + ), 'UserData' => array( 'type' => 'string', 'location' => 'aws.query', 'maxLength' => 21847, ), + 'InstanceId' => array( + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 1, + 'maxLength' => 16, + ), 'InstanceType' => array( - 'required' => true, 'type' => 'string', 'location' => 'aws.query', 'minLength' => 1, @@ -318,10 +431,28 @@ return array ( 'VolumeSize' => array( 'type' => 'numeric', 'minimum' => 1, - 'maximum' => 1024, + 'maximum' => 16384, + ), + 'VolumeType' => array( + 'type' => 'string', + 'minLength' => 1, + 'maxLength' => 255, + ), + 'DeleteOnTermination' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + ), + 'Iops' => array( + 'type' => 'numeric', + 'minimum' => 100, + 'maximum' => 30000, ), ), ), + 'NoDevice' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + ), ), ), ), @@ -357,14 +488,20 @@ return array ( 'format' => 'boolean-string', 'location' => 'aws.query', ), + 'PlacementTenancy' => array( + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 1, + 'maxLength' => 64, + ), ), 'errorResponses' => array( array( - 'reason' => 'The named Auto Scaling group or launch configuration already exists.', + 'reason' => 'You already have an Auto Scaling group or launch configuration with this name.', 'class' => 'AlreadyExistsException', ), array( - 'reason' => 'The quota for capacity groups or launch configurations for this customer has already been reached.', + 'reason' => 'The limit for the number of Auto Scaling groups or launch configurations has already been reached.', 'class' => 'LimitExceededException', ), ), @@ -421,11 +558,11 @@ return array ( ), 'errorResponses' => array( array( - 'reason' => 'The quota for capacity groups or launch configurations for this customer has already been reached.', + 'reason' => 'The limit for the number of Auto Scaling groups or launch configurations has already been reached.', 'class' => 'LimitExceededException', ), array( - 'reason' => 'The named Auto Scaling group or launch configuration already exists.', + 'reason' => 'You already have an Auto Scaling group or launch configuration with this name.', 'class' => 'AlreadyExistsException', ), ), @@ -462,11 +599,11 @@ return array ( ), 'errorResponses' => array( array( - 'reason' => 'You cannot delete an Auto Scaling group while there are scaling activities in progress for that group.', + 'reason' => 'The Auto Scaling group can\'t be deleted because there are scaling activities in progress.', 'class' => 'ScalingActivityInProgressException', ), array( - 'reason' => 'This is returned when you cannot delete a launch configuration or Auto Scaling group because it is being used.', + 'reason' => 'The Auto Scaling group or launch configuration can\'t be deleted because it is in use.', 'class' => 'ResourceInUseException', ), ), @@ -498,11 +635,44 @@ return array ( ), 'errorResponses' => array( array( - 'reason' => 'This is returned when you cannot delete a launch configuration or Auto Scaling group because it is being used.', + 'reason' => 'The Auto Scaling group or launch configuration can\'t be deleted because it is in use.', 'class' => 'ResourceInUseException', ), ), ), + 'DeleteLifecycleHook' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'EmptyOutput', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DeleteLifecycleHook', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2011-01-01', + ), + 'LifecycleHookName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 1, + 'maxLength' => 255, + ), + 'AutoScalingGroupName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 1, + 'maxLength' => 1600, + ), + ), + ), 'DeleteNotificationConfiguration' => array( 'httpMethod' => 'POST', 'uri' => '/', @@ -651,6 +821,25 @@ return array ( ), ), ), + 'DescribeAccountLimits' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'DescribeAccountLimitsAnswer', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DescribeAccountLimits', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2011-01-01', + ), + ), + ), 'DescribeAdjustmentTypes' => array( 'httpMethod' => 'POST', 'uri' => '/', @@ -705,13 +894,11 @@ return array ( 'MaxRecords' => array( 'type' => 'numeric', 'location' => 'aws.query', - 'minimum' => 1, - 'maximum' => 50, ), ), 'errorResponses' => array( array( - 'reason' => 'The NextToken value is invalid.', + 'reason' => 'The NextToken value is not valid.', 'class' => 'InvalidNextTokenException', ), ), @@ -747,8 +934,6 @@ return array ( 'MaxRecords' => array( 'type' => 'numeric', 'location' => 'aws.query', - 'minimum' => 1, - 'maximum' => 50, ), 'NextToken' => array( 'type' => 'string', @@ -757,7 +942,7 @@ return array ( ), 'errorResponses' => array( array( - 'reason' => 'The NextToken value is invalid.', + 'reason' => 'The NextToken value is not valid.', 'class' => 'InvalidNextTokenException', ), ), @@ -816,17 +1001,71 @@ return array ( 'MaxRecords' => array( 'type' => 'numeric', 'location' => 'aws.query', - 'minimum' => 1, - 'maximum' => 50, ), ), 'errorResponses' => array( array( - 'reason' => 'The NextToken value is invalid.', + 'reason' => 'The NextToken value is not valid.', 'class' => 'InvalidNextTokenException', ), ), ), + 'DescribeLifecycleHookTypes' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'DescribeLifecycleHookTypesAnswer', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DescribeLifecycleHookTypes', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2011-01-01', + ), + ), + ), + 'DescribeLifecycleHooks' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'DescribeLifecycleHooksAnswer', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DescribeLifecycleHooks', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2011-01-01', + ), + 'AutoScalingGroupName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 1, + 'maxLength' => 1600, + ), + 'LifecycleHookNames' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'LifecycleHookNames.member', + 'items' => array( + 'name' => 'AsciiStringMaxLen255', + 'type' => 'string', + 'minLength' => 1, + 'maxLength' => 255, + ), + ), + ), + ), 'DescribeMetricCollectionTypes' => array( 'httpMethod' => 'POST', 'uri' => '/', @@ -881,13 +1120,11 @@ return array ( 'MaxRecords' => array( 'type' => 'numeric', 'location' => 'aws.query', - 'minimum' => 1, - 'maximum' => 50, ), ), 'errorResponses' => array( array( - 'reason' => 'The NextToken value is invalid.', + 'reason' => 'The NextToken value is not valid.', 'class' => 'InvalidNextTokenException', ), ), @@ -933,13 +1170,11 @@ return array ( 'MaxRecords' => array( 'type' => 'numeric', 'location' => 'aws.query', - 'minimum' => 1, - 'maximum' => 50, ), ), 'errorResponses' => array( array( - 'reason' => 'The NextToken value is invalid.', + 'reason' => 'The NextToken value is not valid.', 'class' => 'InvalidNextTokenException', ), ), @@ -979,8 +1214,6 @@ return array ( 'MaxRecords' => array( 'type' => 'numeric', 'location' => 'aws.query', - 'minimum' => 1, - 'maximum' => 50, ), 'NextToken' => array( 'type' => 'string', @@ -989,7 +1222,7 @@ return array ( ), 'errorResponses' => array( array( - 'reason' => 'The NextToken value is invalid.', + 'reason' => 'The NextToken value is not valid.', 'class' => 'InvalidNextTokenException', ), ), @@ -1072,13 +1305,11 @@ return array ( 'MaxRecords' => array( 'type' => 'numeric', 'location' => 'aws.query', - 'minimum' => 1, - 'maximum' => 50, ), ), 'errorResponses' => array( array( - 'reason' => 'The NextToken value is invalid.', + 'reason' => 'The NextToken value is not valid.', 'class' => 'InvalidNextTokenException', ), ), @@ -1129,13 +1360,11 @@ return array ( 'MaxRecords' => array( 'type' => 'numeric', 'location' => 'aws.query', - 'minimum' => 1, - 'maximum' => 50, ), ), 'errorResponses' => array( array( - 'reason' => 'The NextToken value is invalid.', + 'reason' => 'The NextToken value is not valid.', 'class' => 'InvalidNextTokenException', ), ), @@ -1159,6 +1388,49 @@ return array ( ), ), ), + 'DetachInstances' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'DetachInstancesAnswer', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DetachInstances', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2011-01-01', + ), + 'InstanceIds' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'InstanceIds.member', + 'items' => array( + 'name' => 'XmlStringMaxLen16', + 'type' => 'string', + 'minLength' => 1, + 'maxLength' => 16, + ), + ), + 'AutoScalingGroupName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 1, + 'maxLength' => 1600, + ), + 'ShouldDecrementDesiredCapacity' => array( + 'required' => true, + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + ), + ), 'DisableMetricsCollection' => array( 'httpMethod' => 'POST', 'uri' => '/', @@ -1240,17 +1512,60 @@ return array ( ), ), ), - 'ExecutePolicy' => array( + 'EnterStandby' => array( 'httpMethod' => 'POST', 'uri' => '/', 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EmptyOutput', + 'responseClass' => 'EnterStandbyAnswer', 'responseType' => 'model', 'parameters' => array( 'Action' => array( 'static' => true, 'location' => 'aws.query', - 'default' => 'ExecutePolicy', + 'default' => 'EnterStandby', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2011-01-01', + ), + 'InstanceIds' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'InstanceIds.member', + 'items' => array( + 'name' => 'XmlStringMaxLen16', + 'type' => 'string', + 'minLength' => 1, + 'maxLength' => 16, + ), + ), + 'AutoScalingGroupName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 1, + 'maxLength' => 1600, + ), + 'ShouldDecrementDesiredCapacity' => array( + 'required' => true, + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + ), + ), + 'ExecutePolicy' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'EmptyOutput', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'ExecutePolicy', ), 'Version' => array( 'static' => true, @@ -1278,11 +1593,117 @@ return array ( ), 'errorResponses' => array( array( - 'reason' => 'You cannot delete an Auto Scaling group while there are scaling activities in progress for that group.', + 'reason' => 'The Auto Scaling group can\'t be deleted because there are scaling activities in progress.', 'class' => 'ScalingActivityInProgressException', ), ), ), + 'ExitStandby' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'ExitStandbyAnswer', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'ExitStandby', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2011-01-01', + ), + 'InstanceIds' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'InstanceIds.member', + 'items' => array( + 'name' => 'XmlStringMaxLen16', + 'type' => 'string', + 'minLength' => 1, + 'maxLength' => 16, + ), + ), + 'AutoScalingGroupName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 1, + 'maxLength' => 1600, + ), + ), + ), + 'PutLifecycleHook' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'EmptyOutput', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'PutLifecycleHook', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2011-01-01', + ), + 'LifecycleHookName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 1, + 'maxLength' => 255, + ), + 'AutoScalingGroupName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 1, + 'maxLength' => 1600, + ), + 'LifecycleTransition' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'RoleARN' => array( + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 1, + 'maxLength' => 1600, + ), + 'NotificationTargetARN' => array( + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 1, + 'maxLength' => 1600, + ), + 'NotificationMetadata' => array( + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 1, + 'maxLength' => 1023, + ), + 'HeartbeatTimeout' => array( + 'type' => 'numeric', + 'location' => 'aws.query', + ), + 'DefaultResult' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The limit for the number of Auto Scaling groups or launch configurations has already been reached.', + 'class' => 'LimitExceededException', + ), + ), + ), 'PutNotificationConfiguration' => array( 'httpMethod' => 'POST', 'uri' => '/', @@ -1329,7 +1750,7 @@ return array ( ), 'errorResponses' => array( array( - 'reason' => 'The quota for capacity groups or launch configurations for this customer has already been reached.', + 'reason' => 'The limit for the number of Auto Scaling groups or launch configurations has already been reached.', 'class' => 'LimitExceededException', ), ), @@ -1388,7 +1809,7 @@ return array ( ), 'errorResponses' => array( array( - 'reason' => 'The quota for capacity groups or launch configurations for this customer has already been reached.', + 'reason' => 'The limit for the number of Auto Scaling groups or launch configurations has already been reached.', 'class' => 'LimitExceededException', ), ), @@ -1472,15 +1893,55 @@ return array ( ), 'errorResponses' => array( array( - 'reason' => 'The named Auto Scaling group or launch configuration already exists.', + 'reason' => 'You already have an Auto Scaling group or launch configuration with this name.', 'class' => 'AlreadyExistsException', ), array( - 'reason' => 'The quota for capacity groups or launch configurations for this customer has already been reached.', + 'reason' => 'The limit for the number of Auto Scaling groups or launch configurations has already been reached.', 'class' => 'LimitExceededException', ), ), ), + 'RecordLifecycleActionHeartbeat' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'EmptyOutput', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'RecordLifecycleActionHeartbeat', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2011-01-01', + ), + 'LifecycleHookName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 1, + 'maxLength' => 255, + ), + 'AutoScalingGroupName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 1, + 'maxLength' => 1600, + ), + 'LifecycleActionToken' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 36, + 'maxLength' => 36, + ), + ), + ), 'ResumeProcesses' => array( 'httpMethod' => 'POST', 'uri' => '/', @@ -1555,7 +2016,7 @@ return array ( ), 'errorResponses' => array( array( - 'reason' => 'You cannot delete an Auto Scaling group while there are scaling activities in progress for that group.', + 'reason' => 'The Auto Scaling group can\'t be deleted because there are scaling activities in progress.', 'class' => 'ScalingActivityInProgressException', ), ), @@ -1668,7 +2129,7 @@ return array ( ), 'errorResponses' => array( array( - 'reason' => 'You cannot delete an Auto Scaling group while there are scaling activities in progress for that group.', + 'reason' => 'The Auto Scaling group can\'t be deleted because there are scaling activities in progress.', 'class' => 'ScalingActivityInProgressException', ), ), @@ -1767,7 +2228,7 @@ return array ( ), 'errorResponses' => array( array( - 'reason' => 'You cannot delete an Auto Scaling group while there are scaling activities in progress for that group.', + 'reason' => 'The Auto Scaling group can\'t be deleted because there are scaling activities in progress.', 'class' => 'ScalingActivityInProgressException', ), ), @@ -1778,6 +2239,20 @@ return array ( 'type' => 'object', 'additionalProperties' => true, ), + 'DescribeAccountLimitsAnswer' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'MaxNumberOfAutoScalingGroups' => array( + 'type' => 'numeric', + 'location' => 'xml', + ), + 'MaxNumberOfLaunchConfigurations' => array( + 'type' => 'numeric', + 'location' => 'xml', + ), + ), + ), 'DescribeAdjustmentTypesAnswer' => array( 'type' => 'object', 'additionalProperties' => true, @@ -2050,6 +2525,17 @@ return array ( 'sentAs' => 'member', ), ), + 'ClassicLinkVPCId' => array( + 'type' => 'string', + ), + 'ClassicLinkVPCSecurityGroups' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'XmlStringMaxLen255', + 'type' => 'string', + 'sentAs' => 'member', + ), + ), 'UserData' => array( 'type' => 'string', ), @@ -2084,8 +2570,20 @@ return array ( 'VolumeSize' => array( 'type' => 'numeric', ), + 'VolumeType' => array( + 'type' => 'string', + ), + 'DeleteOnTermination' => array( + 'type' => 'boolean', + ), + 'Iops' => array( + 'type' => 'numeric', + ), ), ), + 'NoDevice' => array( + 'type' => 'boolean', + ), ), ), ), @@ -2112,6 +2610,9 @@ return array ( 'AssociatePublicIpAddress' => array( 'type' => 'boolean', ), + 'PlacementTenancy' => array( + 'type' => 'string', + ), ), ), ), @@ -2121,6 +2622,65 @@ return array ( ), ), ), + 'DescribeLifecycleHookTypesAnswer' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'LifecycleHookTypes' => array( + 'type' => 'array', + 'location' => 'xml', + 'items' => array( + 'name' => 'XmlStringMaxLen255', + 'type' => 'string', + 'sentAs' => 'member', + ), + ), + ), + ), + 'DescribeLifecycleHooksAnswer' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'LifecycleHooks' => array( + 'type' => 'array', + 'location' => 'xml', + 'items' => array( + 'name' => 'LifecycleHook', + 'type' => 'object', + 'sentAs' => 'member', + 'properties' => array( + 'LifecycleHookName' => array( + 'type' => 'string', + ), + 'AutoScalingGroupName' => array( + 'type' => 'string', + ), + 'LifecycleTransition' => array( + 'type' => 'string', + ), + 'NotificationTargetARN' => array( + 'type' => 'string', + ), + 'RoleARN' => array( + 'type' => 'string', + ), + 'NotificationMetadata' => array( + 'type' => 'string', + ), + 'HeartbeatTimeout' => array( + 'type' => 'numeric', + ), + 'GlobalTimeout' => array( + 'type' => 'numeric', + ), + 'DefaultResult' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), 'DescribeMetricCollectionTypesAnswer' => array( 'type' => 'object', 'additionalProperties' => true, @@ -2416,6 +2976,147 @@ return array ( ), ), ), + 'DetachInstancesAnswer' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'Activities' => array( + 'type' => 'array', + 'location' => 'xml', + 'items' => array( + 'name' => 'Activity', + 'type' => 'object', + 'sentAs' => 'member', + 'properties' => array( + 'ActivityId' => array( + 'type' => 'string', + ), + 'AutoScalingGroupName' => array( + 'type' => 'string', + ), + 'Description' => array( + 'type' => 'string', + ), + 'Cause' => array( + 'type' => 'string', + ), + 'StartTime' => array( + 'type' => 'string', + ), + 'EndTime' => array( + 'type' => 'string', + ), + 'StatusCode' => array( + 'type' => 'string', + ), + 'StatusMessage' => array( + 'type' => 'string', + ), + 'Progress' => array( + 'type' => 'numeric', + ), + 'Details' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + 'EnterStandbyAnswer' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'Activities' => array( + 'type' => 'array', + 'location' => 'xml', + 'items' => array( + 'name' => 'Activity', + 'type' => 'object', + 'sentAs' => 'member', + 'properties' => array( + 'ActivityId' => array( + 'type' => 'string', + ), + 'AutoScalingGroupName' => array( + 'type' => 'string', + ), + 'Description' => array( + 'type' => 'string', + ), + 'Cause' => array( + 'type' => 'string', + ), + 'StartTime' => array( + 'type' => 'string', + ), + 'EndTime' => array( + 'type' => 'string', + ), + 'StatusCode' => array( + 'type' => 'string', + ), + 'StatusMessage' => array( + 'type' => 'string', + ), + 'Progress' => array( + 'type' => 'numeric', + ), + 'Details' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + 'ExitStandbyAnswer' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'Activities' => array( + 'type' => 'array', + 'location' => 'xml', + 'items' => array( + 'name' => 'Activity', + 'type' => 'object', + 'sentAs' => 'member', + 'properties' => array( + 'ActivityId' => array( + 'type' => 'string', + ), + 'AutoScalingGroupName' => array( + 'type' => 'string', + ), + 'Description' => array( + 'type' => 'string', + ), + 'Cause' => array( + 'type' => 'string', + ), + 'StartTime' => array( + 'type' => 'string', + ), + 'EndTime' => array( + 'type' => 'string', + ), + 'StatusCode' => array( + 'type' => 'string', + ), + 'StatusMessage' => array( + 'type' => 'string', + ), + 'Progress' => array( + 'type' => 'numeric', + ), + 'Details' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), 'PolicyARNType' => array( 'type' => 'object', 'additionalProperties' => true, @@ -2470,55 +3171,53 @@ return array ( ), ), 'iterators' => array( - 'operations' => array( - 'DescribeAutoScalingGroups' => array( - 'token_param' => 'NextToken', - 'token_key' => 'NextToken', - 'limit_key' => 'MaxRecords', - 'result_key' => 'AutoScalingGroups', - ), - 'DescribeAutoScalingInstances' => array( - 'token_param' => 'NextToken', - 'token_key' => 'NextToken', - 'limit_key' => 'MaxRecords', - 'result_key' => 'AutoScalingInstances', - ), - 'DescribeLaunchConfigurations' => array( - 'token_param' => 'NextToken', - 'token_key' => 'NextToken', - 'limit_key' => 'MaxRecords', - 'result_key' => 'LaunchConfigurations', - ), - 'DescribeNotificationConfigurations' => array( - 'token_param' => 'NextToken', - 'token_key' => 'NextToken', - 'limit_key' => 'MaxRecords', - 'result_key' => 'NotificationConfigurations', - ), - 'DescribePolicies' => array( - 'token_param' => 'NextToken', - 'token_key' => 'NextToken', - 'limit_key' => 'MaxRecords', - 'result_key' => 'ScalingPolicies', - ), - 'DescribeScalingActivities' => array( - 'token_param' => 'NextToken', - 'token_key' => 'NextToken', - 'limit_key' => 'MaxRecords', - 'result_key' => 'Activities', - ), - 'DescribeScheduledActions' => array( - 'token_param' => 'NextToken', - 'token_key' => 'NextToken', - 'limit_key' => 'MaxRecords', - 'result_key' => 'ScheduledUpdateGroupActions', - ), - 'DescribeTags' => array( - 'token_param' => 'NextToken', - 'token_key' => 'NextToken', - 'limit_key' => 'MaxRecords', - 'result_key' => 'Tags', - ), + 'DescribeAutoScalingGroups' => array( + 'input_token' => 'NextToken', + 'output_token' => 'NextToken', + 'limit_key' => 'MaxRecords', + 'result_key' => 'AutoScalingGroups', + ), + 'DescribeAutoScalingInstances' => array( + 'input_token' => 'NextToken', + 'output_token' => 'NextToken', + 'limit_key' => 'MaxRecords', + 'result_key' => 'AutoScalingInstances', + ), + 'DescribeLaunchConfigurations' => array( + 'input_token' => 'NextToken', + 'output_token' => 'NextToken', + 'limit_key' => 'MaxRecords', + 'result_key' => 'LaunchConfigurations', + ), + 'DescribeNotificationConfigurations' => array( + 'input_token' => 'NextToken', + 'output_token' => 'NextToken', + 'limit_key' => 'MaxRecords', + 'result_key' => 'NotificationConfigurations', + ), + 'DescribePolicies' => array( + 'input_token' => 'NextToken', + 'output_token' => 'NextToken', + 'limit_key' => 'MaxRecords', + 'result_key' => 'ScalingPolicies', + ), + 'DescribeScalingActivities' => array( + 'input_token' => 'NextToken', + 'output_token' => 'NextToken', + 'limit_key' => 'MaxRecords', + 'result_key' => 'Activities', + ), + 'DescribeScheduledActions' => array( + 'input_token' => 'NextToken', + 'output_token' => 'NextToken', + 'limit_key' => 'MaxRecords', + 'result_key' => 'ScheduledUpdateGroupActions', + ), + 'DescribeTags' => array( + 'input_token' => 'NextToken', + 'output_token' => 'NextToken', + 'limit_key' => 'MaxRecords', + 'result_key' => 'Tags', ), ), ); diff --git a/inc/aws-sdk/Aws/CloudFormation/CloudFormationClient.php b/inc/aws-sdk/Aws/CloudFormation/CloudFormationClient.php index 9652e7a..df983f9 100755 --- a/inc/aws-sdk/Aws/CloudFormation/CloudFormationClient.php +++ b/inc/aws-sdk/Aws/CloudFormation/CloudFormationClient.php @@ -36,18 +36,21 @@ use Guzzle\Service\Resource\ResourceIteratorInterface; * @method Model estimateTemplateCost(array $args = array()) {@command CloudFormation EstimateTemplateCost} * @method Model getStackPolicy(array $args = array()) {@command CloudFormation GetStackPolicy} * @method Model getTemplate(array $args = array()) {@command CloudFormation GetTemplate} + * @method Model getTemplateSummary(array $args = array()) {@command CloudFormation GetTemplateSummary} * @method Model listStackResources(array $args = array()) {@command CloudFormation ListStackResources} * @method Model listStacks(array $args = array()) {@command CloudFormation ListStacks} * @method Model setStackPolicy(array $args = array()) {@command CloudFormation SetStackPolicy} + * @method Model signalResource(array $args = array()) {@command CloudFormation SignalResource} * @method Model updateStack(array $args = array()) {@command CloudFormation UpdateStack} * @method Model validateTemplate(array $args = array()) {@command CloudFormation ValidateTemplate} * @method ResourceIteratorInterface getDescribeStackEventsIterator(array $args = array()) The input array uses the parameters of the DescribeStackEvents operation + * @method ResourceIteratorInterface getDescribeStackResourcesIterator(array $args = array()) The input array uses the parameters of the DescribeStackResources operation * @method ResourceIteratorInterface getDescribeStacksIterator(array $args = array()) The input array uses the parameters of the DescribeStacks operation * @method ResourceIteratorInterface getListStackResourcesIterator(array $args = array()) The input array uses the parameters of the ListStackResources operation * @method ResourceIteratorInterface getListStacksIterator(array $args = array()) The input array uses the parameters of the ListStacks operation * - * @link http://docs.aws.amazon.com/aws-sdk-php/guide/latest/service-cloudformation.html User guide - * @link http://docs.aws.amazon.com/aws-sdk-php/latest/class-Aws.CloudFormation.CloudFormationClient.html API docs + * @link http://docs.aws.amazon.com/aws-sdk-php/v2/guide/service-cloudformation.html User guide + * @link http://docs.aws.amazon.com/aws-sdk-php/v2/api/class-Aws.CloudFormation.CloudFormationClient.html API docs */ class CloudFormationClient extends AbstractClient { @@ -59,7 +62,7 @@ class CloudFormationClient extends AbstractClient * @param array|Collection $config Client configuration data * * @return self - * @see \Aws\Common\Client\DefaultClient for a list of available configuration options + * @link http://docs.aws.amazon.com/aws-sdk-php/v2/guide/configuration.html#client-configuration-options */ public static function factory($config = array()) { diff --git a/inc/aws-sdk/Aws/CloudFormation/Exception/AlreadyExistsException.php b/inc/aws-sdk/Aws/CloudFormation/Exception/AlreadyExistsException.php index 8a94636..e2d4fa1 100755 --- a/inc/aws-sdk/Aws/CloudFormation/Exception/AlreadyExistsException.php +++ b/inc/aws-sdk/Aws/CloudFormation/Exception/AlreadyExistsException.php @@ -17,6 +17,6 @@ namespace Aws\CloudFormation\Exception; /** - * Exception that occurs when a AlreadyExistsException error is encountered + * Resource with the name requested already exists. */ class AlreadyExistsException extends CloudFormationException {} diff --git a/inc/aws-sdk/Aws/CloudFormation/Exception/InsufficientCapabilitiesException.php b/inc/aws-sdk/Aws/CloudFormation/Exception/InsufficientCapabilitiesException.php index f817e42..5c223a0 100755 --- a/inc/aws-sdk/Aws/CloudFormation/Exception/InsufficientCapabilitiesException.php +++ b/inc/aws-sdk/Aws/CloudFormation/Exception/InsufficientCapabilitiesException.php @@ -17,6 +17,6 @@ namespace Aws\CloudFormation\Exception; /** - * Exception that occurs when a InsufficientCapabilitiesException error is encountered + * The template contains resources with capabilities that were not specified in the Capabilities parameter. */ class InsufficientCapabilitiesException extends CloudFormationException {} diff --git a/inc/aws-sdk/Aws/CloudFormation/Exception/LimitExceededException.php b/inc/aws-sdk/Aws/CloudFormation/Exception/LimitExceededException.php index e3e1ec7..4c6d0f5 100755 --- a/inc/aws-sdk/Aws/CloudFormation/Exception/LimitExceededException.php +++ b/inc/aws-sdk/Aws/CloudFormation/Exception/LimitExceededException.php @@ -17,6 +17,6 @@ namespace Aws\CloudFormation\Exception; /** - * Exception that occurs when a LimitExceededException error is encountered + * Quota for the resource has already been reached. */ class LimitExceededException extends CloudFormationException {} diff --git a/inc/aws-sdk/Aws/CloudFormation/Resources/cloudformation-2010-05-15.php b/inc/aws-sdk/Aws/CloudFormation/Resources/cloudformation-2010-05-15.php index 49637ed..46631ef 100755 --- a/inc/aws-sdk/Aws/CloudFormation/Resources/cloudformation-2010-05-15.php +++ b/inc/aws-sdk/Aws/CloudFormation/Resources/cloudformation-2010-05-15.php @@ -63,6 +63,11 @@ return array ( 'https' => true, 'hostname' => 'cloudformation.sa-east-1.amazonaws.com', ), + 'cn-north-1' => array( + 'http' => false, + 'https' => true, + 'hostname' => 'cloudformation.cn-north-1.amazonaws.com.cn', + ), 'us-gov-west-1' => array( 'http' => false, 'https' => true, @@ -141,6 +146,10 @@ return array ( 'ParameterValue' => array( 'type' => 'string', ), + 'UsePreviousValue' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + ), ), ), ), @@ -171,19 +180,11 @@ return array ( 'items' => array( 'name' => 'Capability', 'type' => 'string', - 'enum' => array( - 'CAPABILITY_IAM', - ), ), ), 'OnFailure' => array( 'type' => 'string', 'location' => 'aws.query', - 'enum' => array( - 'DO_NOTHING', - 'ROLLBACK', - 'DELETE', - ), ), 'StackPolicyBody' => array( 'type' => 'string', @@ -217,12 +218,15 @@ return array ( ), 'errorResponses' => array( array( + 'reason' => 'Quota for the resource has already been reached.', 'class' => 'LimitExceededException', ), array( + 'reason' => 'Resource with the name requested already exists.', 'class' => 'AlreadyExistsException', ), array( + 'reason' => 'The template contains resources with capabilities that were not specified in the Capabilities parameter.', 'class' => 'InsufficientCapabilitiesException', ), ), @@ -411,6 +415,10 @@ return array ( 'ParameterValue' => array( 'type' => 'string', ), + 'UsePreviousValue' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + ), ), ), ), @@ -464,6 +472,41 @@ return array ( ), ), ), + 'GetTemplateSummary' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'GetTemplateSummaryOutput', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'GetTemplateSummary', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2010-05-15', + ), + 'TemplateBody' => array( + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 1, + ), + 'TemplateURL' => array( + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 1, + 'maxLength' => 1024, + ), + 'StackName' => array( + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 1, + ), + ), + ), 'ListStackResources' => array( 'httpMethod' => 'POST', 'uri' => '/', @@ -524,24 +567,6 @@ return array ( 'items' => array( 'name' => 'StackStatus', 'type' => 'string', - 'enum' => array( - 'CREATE_IN_PROGRESS', - 'CREATE_FAILED', - 'CREATE_COMPLETE', - 'ROLLBACK_IN_PROGRESS', - 'ROLLBACK_FAILED', - 'ROLLBACK_COMPLETE', - 'DELETE_IN_PROGRESS', - 'DELETE_FAILED', - 'DELETE_COMPLETE', - 'UPDATE_IN_PROGRESS', - 'UPDATE_COMPLETE_CLEANUP_IN_PROGRESS', - 'UPDATE_COMPLETE', - 'UPDATE_ROLLBACK_IN_PROGRESS', - 'UPDATE_ROLLBACK_FAILED', - 'UPDATE_ROLLBACK_COMPLETE_CLEANUP_IN_PROGRESS', - 'UPDATE_ROLLBACK_COMPLETE', - ), ), ), ), @@ -582,6 +607,48 @@ return array ( ), ), ), + 'SignalResource' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'EmptyOutput', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'SignalResource', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2010-05-15', + ), + 'StackName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 1, + ), + 'LogicalResourceId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'UniqueId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 1, + 'maxLength' => 64, + ), + 'Status' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + ), 'UpdateStack' => array( 'httpMethod' => 'POST', 'uri' => '/', @@ -615,6 +682,11 @@ return array ( 'minLength' => 1, 'maxLength' => 1024, ), + 'UsePreviousTemplate' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), 'StackPolicyDuringUpdateBody' => array( 'type' => 'string', 'location' => 'aws.query', @@ -641,6 +713,10 @@ return array ( 'ParameterValue' => array( 'type' => 'string', ), + 'UsePreviousValue' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + ), ), ), ), @@ -651,9 +727,6 @@ return array ( 'items' => array( 'name' => 'Capability', 'type' => 'string', - 'enum' => array( - 'CAPABILITY_IAM', - ), ), ), 'StackPolicyBody' => array( @@ -668,9 +741,20 @@ return array ( 'minLength' => 1, 'maxLength' => 1350, ), + 'NotificationARNs' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'NotificationARNs.member', + 'maxItems' => 5, + 'items' => array( + 'name' => 'NotificationARN', + 'type' => 'string', + ), + ), ), 'errorResponses' => array( array( + 'reason' => 'The template contains resources with capabilities that were not specified in the Capabilities parameter.', 'class' => 'InsufficientCapabilitiesException', ), ), @@ -892,6 +976,9 @@ return array ( 'ParameterValue' => array( 'type' => 'string', ), + 'UsePreviousValue' => array( + 'type' => 'boolean', + ), ), ), ), @@ -1003,6 +1090,59 @@ return array ( ), ), ), + 'GetTemplateSummaryOutput' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'Parameters' => array( + 'type' => 'array', + 'location' => 'xml', + 'items' => array( + 'name' => 'ParameterDeclaration', + 'type' => 'object', + 'sentAs' => 'member', + 'properties' => array( + 'ParameterKey' => array( + 'type' => 'string', + ), + 'DefaultValue' => array( + 'type' => 'string', + ), + 'ParameterType' => array( + 'type' => 'string', + ), + 'NoEcho' => array( + 'type' => 'boolean', + ), + 'Description' => array( + 'type' => 'string', + ), + ), + ), + ), + 'Description' => array( + 'type' => 'string', + 'location' => 'xml', + ), + 'Capabilities' => array( + 'type' => 'array', + 'location' => 'xml', + 'items' => array( + 'name' => 'Capability', + 'type' => 'string', + 'sentAs' => 'member', + ), + ), + 'CapabilitiesReason' => array( + 'type' => 'string', + 'location' => 'xml', + ), + 'Version' => array( + 'type' => 'string', + 'location' => 'xml', + ), + ), + ), 'ListStackResourcesOutput' => array( 'type' => 'object', 'additionalProperties' => true, @@ -1145,27 +1285,28 @@ return array ( ), ), 'iterators' => array( - 'operations' => array( - 'DescribeStackEvents' => array( - 'token_param' => 'NextToken', - 'token_key' => 'NextToken', - 'result_key' => 'StackEvents', - ), - 'DescribeStacks' => array( - 'token_param' => 'NextToken', - 'token_key' => 'NextToken', - 'result_key' => 'Stacks', - ), - 'ListStackResources' => array( - 'token_param' => 'NextToken', - 'token_key' => 'NextToken', - 'result_key' => 'StackResourceSummaries', - ), - 'ListStacks' => array( - 'token_param' => 'NextToken', - 'token_key' => 'NextToken', - 'result_key' => 'StackSummaries', - ), + 'DescribeStackEvents' => array( + 'input_token' => 'NextToken', + 'output_token' => 'NextToken', + 'result_key' => 'StackEvents', + ), + 'DescribeStackResources' => array( + 'result_key' => 'StackResources', + ), + 'DescribeStacks' => array( + 'input_token' => 'NextToken', + 'output_token' => 'NextToken', + 'result_key' => 'Stacks', + ), + 'ListStackResources' => array( + 'input_token' => 'NextToken', + 'output_token' => 'NextToken', + 'result_key' => 'StackResourceSummaries', + ), + 'ListStacks' => array( + 'input_token' => 'NextToken', + 'output_token' => 'NextToken', + 'result_key' => 'StackSummaries', ), ), ); diff --git a/inc/aws-sdk/Aws/CloudFront/CloudFrontClient.php b/inc/aws-sdk/Aws/CloudFront/CloudFrontClient.php index 3834b0b..031cf04 100755 --- a/inc/aws-sdk/Aws/CloudFront/CloudFrontClient.php +++ b/inc/aws-sdk/Aws/CloudFront/CloudFrontClient.php @@ -51,20 +51,20 @@ use Guzzle\Service\Resource\ResourceIteratorInterface; * @method Model updateCloudFrontOriginAccessIdentity(array $args = array()) {@command CloudFront UpdateCloudFrontOriginAccessIdentity} * @method Model updateDistribution(array $args = array()) {@command CloudFront UpdateDistribution} * @method Model updateStreamingDistribution(array $args = array()) {@command CloudFront UpdateStreamingDistribution} - * @method waitUntilStreamingDistributionDeployed(array $input) Wait until a streaming distribution is deployed. The input array uses the parameters of the GetStreamingDistribution operation and waiter specific settings - * @method waitUntilDistributionDeployed(array $input) Wait until a distribution is deployed. The input array uses the parameters of the GetDistribution operation and waiter specific settings - * @method waitUntilInvalidationCompleted(array $input) Wait until an invalidation has completed. The input array uses the parameters of the GetInvalidation operation and waiter specific settings + * @method waitUntilStreamingDistributionDeployed(array $input) The input array uses the parameters of the GetStreamingDistribution operation and waiter specific settings + * @method waitUntilDistributionDeployed(array $input) The input array uses the parameters of the GetDistribution operation and waiter specific settings + * @method waitUntilInvalidationCompleted(array $input) The input array uses the parameters of the GetInvalidation operation and waiter specific settings * @method ResourceIteratorInterface getListCloudFrontOriginAccessIdentitiesIterator(array $args = array()) The input array uses the parameters of the ListCloudFrontOriginAccessIdentities operation * @method ResourceIteratorInterface getListDistributionsIterator(array $args = array()) The input array uses the parameters of the ListDistributions operation * @method ResourceIteratorInterface getListInvalidationsIterator(array $args = array()) The input array uses the parameters of the ListInvalidations operation * @method ResourceIteratorInterface getListStreamingDistributionsIterator(array $args = array()) The input array uses the parameters of the ListStreamingDistributions operation * - * @link http://docs.aws.amazon.com/aws-sdk-php/guide/latest/service-cloudfront.html User guide - * @link http://docs.aws.amazon.com/aws-sdk-php/latest/class-Aws.CloudFront.CloudFrontClient.html API docs + * @link http://docs.aws.amazon.com/aws-sdk-php/v2/guide/service-cloudfront.html User guide + * @link http://docs.aws.amazon.com/aws-sdk-php/v2/api/class-Aws.CloudFront.CloudFrontClient.html API docs */ class CloudFrontClient extends AbstractClient { - const LATEST_API_VERSION = '2013-09-27'; + const LATEST_API_VERSION = '2014-11-06'; /** * Factory method to create a new Amazon CloudFront client using an array of configuration options. @@ -76,7 +76,7 @@ class CloudFrontClient extends AbstractClient * @param array|Collection $config Client configuration data * * @return self - * @see \Aws\Common\Client\DefaultClient for a list of other available configuration options + * @link http://docs.aws.amazon.com/aws-sdk-php/v2/guide/configuration.html#client-configuration-options */ public static function factory($config = array()) { @@ -93,18 +93,6 @@ class CloudFrontClient extends AbstractClient Options::SERVICE_DESCRIPTION => __DIR__ . '/Resources/cloudfront-%s.php', )) ->setExceptionParser(new DefaultXmlExceptionParser()) - ->setIteratorsConfig(array( - 'token_param' => 'Marker', - 'token_key' => 'NextMarker', - 'more_key' => 'IsTruncated', - 'result_key' => 'Items', - 'operations' => array( - 'ListCloudFrontOriginAccessIdentities', - 'ListDistributions', - 'ListInvalidations', - 'ListStreamingDistributions' - ) - )) ->build(); } @@ -225,9 +213,14 @@ class CloudFrontClient extends AbstractClient } elseif ($scheme == 'rtmp') { $parts = parse_url($url); $pathParts = pathinfo($parts['path']); - // Add path leading to file, strip file extension, and add a query string if present - $resource = ltrim($pathParts['dirname'] . '/' . $pathParts['basename'], '/') - . (isset($parts['query']) ? "?{$parts['query']}" : ''); + // Add path leading to file, strip file extension, and add a query + // string if present. + $resource = ltrim($pathParts['dirname'] + . '/' + . $pathParts['basename'], '/\\'); + if (isset($parts['query'])) { + $resource .= "?{$parts['query']}"; + } } else { throw new InvalidArgumentException("Invalid URI scheme: {$scheme}. Must be one of http or rtmp."); } diff --git a/inc/aws-sdk/Aws/CloudFront/CloudFrontSignature.php b/inc/aws-sdk/Aws/CloudFront/CloudFrontSignature.php index 89cbe25..dcc6482 100755 --- a/inc/aws-sdk/Aws/CloudFront/CloudFrontSignature.php +++ b/inc/aws-sdk/Aws/CloudFront/CloudFrontSignature.php @@ -18,14 +18,14 @@ namespace Aws\CloudFront; use Aws\Common\Credentials\CredentialsInterface; use Aws\Common\Enum\DateFormat; -use Aws\Common\Signature\SignatureInterface; +use Aws\Common\Signature\AbstractSignature; use Guzzle\Http\Message\RequestInterface; /** * Amazon CloudFront signature implementation * @link http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/RESTAuthentication.html */ -class CloudFrontSignature implements SignatureInterface +class CloudFrontSignature extends AbstractSignature { /** * {@inheritdoc} diff --git a/inc/aws-sdk/Aws/CloudFront/Enum/GeoRestrictionType.php b/inc/aws-sdk/Aws/CloudFront/Enum/GeoRestrictionType.php new file mode 100644 index 0000000..a9c3361 --- /dev/null +++ b/inc/aws-sdk/Aws/CloudFront/Enum/GeoRestrictionType.php @@ -0,0 +1,29 @@ + array( + 'ListCloudFrontOriginAccessIdentities' => array( + 'input_token' => 'Marker', + 'output_token' => 'NextMarker', + 'more_results' => 'IsTruncated', + 'result_key' => 'Items', + ), + 'ListDistributions' => array( + 'input_token' => 'Marker', + 'output_token' => 'NextMarker', + 'more_results' => 'IsTruncated', + 'result_key' => 'Items', + ), + 'ListInvalidations' => array( + 'input_token' => 'Marker', + 'output_token' => 'NextMarker', + 'more_results' => 'IsTruncated', + 'result_key' => 'Items', + ), + 'ListStreamingDistributions' => array( + 'input_token' => 'Marker', + 'output_token' => 'NextMarker', + 'more_results' => 'IsTruncated', + 'result_key' => 'Items', + ), + ), 'waiters' => array( '__default__' => array( 'success.type' => 'output', diff --git a/inc/aws-sdk/Aws/CloudFront/Resources/cloudfront-2014-11-06.php b/inc/aws-sdk/Aws/CloudFront/Resources/cloudfront-2014-11-06.php new file mode 100644 index 0000000..06699ce --- /dev/null +++ b/inc/aws-sdk/Aws/CloudFront/Resources/cloudfront-2014-11-06.php @@ -0,0 +1,5744 @@ + '2014-11-06', + 'endpointPrefix' => 'cloudfront', + 'serviceFullName' => 'Amazon CloudFront', + 'serviceAbbreviation' => 'CloudFront', + 'serviceType' => 'rest-xml', + 'globalEndpoint' => 'cloudfront.amazonaws.com', + 'signatureVersion' => 'v4', + 'namespace' => 'CloudFront', + 'regions' => array( + 'us-east-1' => array( + 'http' => true, + 'https' => true, + 'hostname' => 'cloudfront.amazonaws.com', + ), + 'us-west-1' => array( + 'http' => true, + 'https' => true, + 'hostname' => 'cloudfront.amazonaws.com', + ), + 'us-west-2' => array( + 'http' => true, + 'https' => true, + 'hostname' => 'cloudfront.amazonaws.com', + ), + 'eu-west-1' => array( + 'http' => true, + 'https' => true, + 'hostname' => 'cloudfront.amazonaws.com', + ), + 'ap-northeast-1' => array( + 'http' => true, + 'https' => true, + 'hostname' => 'cloudfront.amazonaws.com', + ), + 'ap-southeast-1' => array( + 'http' => true, + 'https' => true, + 'hostname' => 'cloudfront.amazonaws.com', + ), + 'ap-southeast-2' => array( + 'http' => true, + 'https' => true, + 'hostname' => 'cloudfront.amazonaws.com', + ), + 'sa-east-1' => array( + 'http' => true, + 'https' => true, + 'hostname' => 'cloudfront.amazonaws.com', + ), + ), + 'operations' => array( + 'CreateCloudFrontOriginAccessIdentity' => array( + 'httpMethod' => 'POST', + 'uri' => '/2014-11-06/origin-access-identity/cloudfront', + 'class' => 'Guzzle\\Service\\Command\\OperationCommand', + 'responseClass' => 'CreateCloudFrontOriginAccessIdentityResult', + 'responseType' => 'model', + 'data' => array( + 'xmlRoot' => array( + 'name' => 'CloudFrontOriginAccessIdentityConfig', + 'namespaces' => array( + 'http://cloudfront.amazonaws.com/doc/2014-11-06/', + ), + ), + ), + 'parameters' => array( + 'CallerReference' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'xml', + ), + 'Comment' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'xml', + ), + 'command.expects' => array( + 'static' => true, + 'default' => 'application/xml', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'If the CallerReference is a value you already sent in a previous request to create an identity but the content of the CloudFrontOriginAccessIdentityConfig is different from the original request, CloudFront returns a CloudFrontOriginAccessIdentityAlreadyExists error.', + 'class' => 'CloudFrontOriginAccessIdentityAlreadyExistsException', + ), + array( + 'reason' => 'This operation requires a body. Ensure that the body is present and the Content-Type header is set.', + 'class' => 'MissingBodyException', + ), + array( + 'reason' => 'Processing your request would cause you to exceed the maximum number of origin access identities allowed.', + 'class' => 'TooManyCloudFrontOriginAccessIdentitiesException', + ), + array( + 'reason' => 'The argument is invalid.', + 'class' => 'InvalidArgumentException', + ), + array( + 'reason' => 'The value of Quantity and the size of Items do not match.', + 'class' => 'InconsistentQuantitiesException', + ), + ), + ), + 'CreateDistribution' => array( + 'httpMethod' => 'POST', + 'uri' => '/2014-11-06/distribution', + 'class' => 'Guzzle\\Service\\Command\\OperationCommand', + 'responseClass' => 'CreateDistributionResult', + 'responseType' => 'model', + 'data' => array( + 'xmlRoot' => array( + 'name' => 'DistributionConfig', + 'namespaces' => array( + 'http://cloudfront.amazonaws.com/doc/2014-11-06/', + ), + ), + ), + 'parameters' => array( + 'CallerReference' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'xml', + ), + 'Aliases' => array( + 'type' => 'object', + 'location' => 'xml', + 'properties' => array( + 'Quantity' => array( + 'required' => true, + 'type' => 'numeric', + ), + 'Items' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'CNAME', + 'type' => 'string', + ), + ), + ), + ), + 'DefaultRootObject' => array( + 'type' => 'string', + 'location' => 'xml', + ), + 'Origins' => array( + 'required' => true, + 'type' => 'object', + 'location' => 'xml', + 'properties' => array( + 'Quantity' => array( + 'required' => true, + 'type' => 'numeric', + ), + 'Items' => array( + 'type' => 'array', + 'minItems' => 1, + 'items' => array( + 'name' => 'Origin', + 'type' => 'object', + 'properties' => array( + 'Id' => array( + 'required' => true, + 'type' => 'string', + ), + 'DomainName' => array( + 'required' => true, + 'type' => 'string', + ), + 'OriginPath' => array( + 'type' => 'string', + ), + 'S3OriginConfig' => array( + 'type' => 'object', + 'properties' => array( + 'OriginAccessIdentity' => array( + 'required' => true, + 'type' => 'string', + ), + ), + ), + 'CustomOriginConfig' => array( + 'type' => 'object', + 'properties' => array( + 'HTTPPort' => array( + 'required' => true, + 'type' => 'numeric', + ), + 'HTTPSPort' => array( + 'required' => true, + 'type' => 'numeric', + ), + 'OriginProtocolPolicy' => array( + 'required' => true, + 'type' => 'string', + ), + ), + ), + ), + ), + ), + ), + ), + 'DefaultCacheBehavior' => array( + 'required' => true, + 'type' => 'object', + 'location' => 'xml', + 'properties' => array( + 'TargetOriginId' => array( + 'required' => true, + 'type' => 'string', + ), + 'ForwardedValues' => array( + 'required' => true, + 'type' => 'object', + 'properties' => array( + 'QueryString' => array( + 'required' => true, + 'type' => 'boolean', + 'format' => 'boolean-string', + ), + 'Cookies' => array( + 'required' => true, + 'type' => 'object', + 'properties' => array( + 'Forward' => array( + 'required' => true, + 'type' => 'string', + ), + 'WhitelistedNames' => array( + 'type' => 'object', + 'properties' => array( + 'Quantity' => array( + 'required' => true, + 'type' => 'numeric', + ), + 'Items' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Name', + 'type' => 'string', + ), + ), + ), + ), + ), + ), + 'Headers' => array( + 'type' => 'object', + 'properties' => array( + 'Quantity' => array( + 'required' => true, + 'type' => 'numeric', + ), + 'Items' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Name', + 'type' => 'string', + ), + ), + ), + ), + ), + ), + 'TrustedSigners' => array( + 'required' => true, + 'type' => 'object', + 'properties' => array( + 'Enabled' => array( + 'required' => true, + 'type' => 'boolean', + 'format' => 'boolean-string', + ), + 'Quantity' => array( + 'required' => true, + 'type' => 'numeric', + ), + 'Items' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'AwsAccountNumber', + 'type' => 'string', + ), + ), + ), + ), + 'ViewerProtocolPolicy' => array( + 'required' => true, + 'type' => 'string', + ), + 'MinTTL' => array( + 'required' => true, + 'type' => 'numeric', + ), + 'AllowedMethods' => array( + 'type' => 'object', + 'properties' => array( + 'Quantity' => array( + 'required' => true, + 'type' => 'numeric', + ), + 'Items' => array( + 'required' => true, + 'type' => 'array', + 'items' => array( + 'name' => 'Method', + 'type' => 'string', + ), + ), + 'CachedMethods' => array( + 'type' => 'object', + 'properties' => array( + 'Quantity' => array( + 'required' => true, + 'type' => 'numeric', + ), + 'Items' => array( + 'required' => true, + 'type' => 'array', + 'items' => array( + 'name' => 'Method', + 'type' => 'string', + ), + ), + ), + ), + ), + ), + 'SmoothStreaming' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + ), + ), + ), + 'CacheBehaviors' => array( + 'type' => 'object', + 'location' => 'xml', + 'properties' => array( + 'Quantity' => array( + 'required' => true, + 'type' => 'numeric', + ), + 'Items' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'CacheBehavior', + 'type' => 'object', + 'properties' => array( + 'PathPattern' => array( + 'required' => true, + 'type' => 'string', + ), + 'TargetOriginId' => array( + 'required' => true, + 'type' => 'string', + ), + 'ForwardedValues' => array( + 'required' => true, + 'type' => 'object', + 'properties' => array( + 'QueryString' => array( + 'required' => true, + 'type' => 'boolean', + 'format' => 'boolean-string', + ), + 'Cookies' => array( + 'required' => true, + 'type' => 'object', + 'properties' => array( + 'Forward' => array( + 'required' => true, + 'type' => 'string', + ), + 'WhitelistedNames' => array( + 'type' => 'object', + 'properties' => array( + 'Quantity' => array( + 'required' => true, + 'type' => 'numeric', + ), + 'Items' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Name', + 'type' => 'string', + ), + ), + ), + ), + ), + ), + 'Headers' => array( + 'type' => 'object', + 'properties' => array( + 'Quantity' => array( + 'required' => true, + 'type' => 'numeric', + ), + 'Items' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Name', + 'type' => 'string', + ), + ), + ), + ), + ), + ), + 'TrustedSigners' => array( + 'required' => true, + 'type' => 'object', + 'properties' => array( + 'Enabled' => array( + 'required' => true, + 'type' => 'boolean', + 'format' => 'boolean-string', + ), + 'Quantity' => array( + 'required' => true, + 'type' => 'numeric', + ), + 'Items' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'AwsAccountNumber', + 'type' => 'string', + ), + ), + ), + ), + 'ViewerProtocolPolicy' => array( + 'required' => true, + 'type' => 'string', + ), + 'MinTTL' => array( + 'required' => true, + 'type' => 'numeric', + ), + 'AllowedMethods' => array( + 'type' => 'object', + 'properties' => array( + 'Quantity' => array( + 'required' => true, + 'type' => 'numeric', + ), + 'Items' => array( + 'required' => true, + 'type' => 'array', + 'items' => array( + 'name' => 'Method', + 'type' => 'string', + ), + ), + 'CachedMethods' => array( + 'type' => 'object', + 'properties' => array( + 'Quantity' => array( + 'required' => true, + 'type' => 'numeric', + ), + 'Items' => array( + 'required' => true, + 'type' => 'array', + 'items' => array( + 'name' => 'Method', + 'type' => 'string', + ), + ), + ), + ), + ), + ), + 'SmoothStreaming' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + ), + ), + ), + ), + ), + ), + 'CustomErrorResponses' => array( + 'type' => 'object', + 'location' => 'xml', + 'properties' => array( + 'Quantity' => array( + 'required' => true, + 'type' => 'numeric', + ), + 'Items' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'CustomErrorResponse', + 'type' => 'object', + 'properties' => array( + 'ErrorCode' => array( + 'required' => true, + 'type' => 'numeric', + ), + 'ResponsePagePath' => array( + 'type' => 'string', + ), + 'ResponseCode' => array( + 'type' => 'string', + ), + 'ErrorCachingMinTTL' => array( + 'type' => 'numeric', + ), + ), + ), + ), + ), + ), + 'Comment' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'xml', + ), + 'Logging' => array( + 'type' => 'object', + 'location' => 'xml', + 'properties' => array( + 'Enabled' => array( + 'required' => true, + 'type' => 'boolean', + 'format' => 'boolean-string', + ), + 'IncludeCookies' => array( + 'required' => true, + 'type' => 'boolean', + 'format' => 'boolean-string', + ), + 'Bucket' => array( + 'required' => true, + 'type' => 'string', + ), + 'Prefix' => array( + 'required' => true, + 'type' => 'string', + ), + ), + ), + 'PriceClass' => array( + 'type' => 'string', + 'location' => 'xml', + ), + 'Enabled' => array( + 'required' => true, + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'xml', + ), + 'ViewerCertificate' => array( + 'type' => 'object', + 'location' => 'xml', + 'properties' => array( + 'IAMCertificateId' => array( + 'type' => 'string', + ), + 'CloudFrontDefaultCertificate' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + ), + 'SSLSupportMethod' => array( + 'type' => 'string', + ), + 'MinimumProtocolVersion' => array( + 'type' => 'string', + ), + ), + ), + 'Restrictions' => array( + 'type' => 'object', + 'location' => 'xml', + 'properties' => array( + 'GeoRestriction' => array( + 'required' => true, + 'type' => 'object', + 'properties' => array( + 'RestrictionType' => array( + 'required' => true, + 'type' => 'string', + ), + 'Quantity' => array( + 'required' => true, + 'type' => 'numeric', + ), + 'Items' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Location', + 'type' => 'string', + ), + ), + ), + ), + ), + ), + 'command.expects' => array( + 'static' => true, + 'default' => 'application/xml', + ), + ), + 'errorResponses' => array( + array( + 'class' => 'CNAMEAlreadyExistsException', + ), + array( + 'reason' => 'The caller reference you attempted to create the distribution with is associated with another distribution.', + 'class' => 'DistributionAlreadyExistsException', + ), + array( + 'reason' => 'The Amazon S3 origin server specified does not refer to a valid Amazon S3 bucket.', + 'class' => 'InvalidOriginException', + ), + array( + 'reason' => 'The origin access identity is not valid or doesn\'t exist.', + 'class' => 'InvalidOriginAccessIdentityException', + ), + array( + 'reason' => 'Access denied.', + 'class' => 'AccessDeniedException', + ), + array( + 'reason' => 'Your request contains more trusted signers than are allowed per distribution.', + 'class' => 'TooManyTrustedSignersException', + ), + array( + 'reason' => 'One or more of your trusted signers do not exist.', + 'class' => 'TrustedSignerDoesNotExistException', + ), + array( + 'class' => 'InvalidViewerCertificateException', + ), + array( + 'reason' => 'This operation requires a body. Ensure that the body is present and the Content-Type header is set.', + 'class' => 'MissingBodyException', + ), + array( + 'reason' => 'Your request contains more CNAMEs than are allowed per distribution.', + 'class' => 'TooManyDistributionCNAMEsException', + ), + array( + 'reason' => 'Processing your request would cause you to exceed the maximum number of distributions allowed.', + 'class' => 'TooManyDistributionsException', + ), + array( + 'reason' => 'The default root object file name is too big or contains an invalid character.', + 'class' => 'InvalidDefaultRootObjectException', + ), + array( + 'reason' => 'The relative path is too big, is not URL-encoded, or does not begin with a slash (/).', + 'class' => 'InvalidRelativePathException', + ), + array( + 'class' => 'InvalidErrorCodeException', + ), + array( + 'class' => 'InvalidResponseCodeException', + ), + array( + 'reason' => 'The argument is invalid.', + 'class' => 'InvalidArgumentException', + ), + array( + 'reason' => 'This operation requires the HTTPS protocol. Ensure that you specify the HTTPS protocol in your request, or omit the RequiredProtocols element from your distribution configuration.', + 'class' => 'InvalidRequiredProtocolException', + ), + array( + 'reason' => 'No origin exists with the specified Origin Id.', + 'class' => 'NoSuchOriginException', + ), + array( + 'reason' => 'You cannot create anymore origins for the distribution.', + 'class' => 'TooManyOriginsException', + ), + array( + 'reason' => 'You cannot create anymore cache behaviors for the distribution.', + 'class' => 'TooManyCacheBehaviorsException', + ), + array( + 'reason' => 'Your request contains more cookie names in the whitelist than are allowed per cache behavior.', + 'class' => 'TooManyCookieNamesInWhiteListException', + ), + array( + 'reason' => 'Your request contains forward cookies option which doesn\'t match with the expectation for the whitelisted list of cookie names. Either list of cookie names has been specified when not allowed or list of cookie names is missing when expected.', + 'class' => 'InvalidForwardCookiesException', + ), + array( + 'class' => 'TooManyHeadersInForwardedValuesException', + ), + array( + 'class' => 'InvalidHeadersForS3OriginException', + ), + array( + 'reason' => 'The value of Quantity and the size of Items do not match.', + 'class' => 'InconsistentQuantitiesException', + ), + array( + 'reason' => 'You cannot create anymore custom ssl certificates.', + 'class' => 'TooManyCertificatesException', + ), + array( + 'class' => 'InvalidLocationCodeException', + ), + array( + 'class' => 'InvalidGeoRestrictionParameterException', + ), + array( + 'reason' => 'You cannot specify SSLv3 as the minimum protocol version if you only want to support only clients that Support Server Name Indication (SNI).', + 'class' => 'InvalidProtocolSettingsException', + ), + ), + ), + 'CreateInvalidation' => array( + 'httpMethod' => 'POST', + 'uri' => '/2014-11-06/distribution/{DistributionId}/invalidation', + 'class' => 'Guzzle\\Service\\Command\\OperationCommand', + 'responseClass' => 'CreateInvalidationResult', + 'responseType' => 'model', + 'data' => array( + 'xmlRoot' => array( + 'name' => 'InvalidationBatch', + 'namespaces' => array( + 'http://cloudfront.amazonaws.com/doc/2014-11-06/', + ), + ), + ), + 'parameters' => array( + 'DistributionId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'uri', + ), + 'Paths' => array( + 'required' => true, + 'type' => 'object', + 'location' => 'xml', + 'properties' => array( + 'Quantity' => array( + 'required' => true, + 'type' => 'numeric', + ), + 'Items' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Path', + 'type' => 'string', + ), + ), + ), + ), + 'CallerReference' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'xml', + ), + 'command.expects' => array( + 'static' => true, + 'default' => 'application/xml', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'Access denied.', + 'class' => 'AccessDeniedException', + ), + array( + 'reason' => 'This operation requires a body. Ensure that the body is present and the Content-Type header is set.', + 'class' => 'MissingBodyException', + ), + array( + 'reason' => 'The argument is invalid.', + 'class' => 'InvalidArgumentException', + ), + array( + 'reason' => 'The specified distribution does not exist.', + 'class' => 'NoSuchDistributionException', + ), + array( + 'class' => 'BatchTooLargeException', + ), + array( + 'reason' => 'You have exceeded the maximum number of allowable InProgress invalidation batch requests, or invalidation objects.', + 'class' => 'TooManyInvalidationsInProgressException', + ), + array( + 'reason' => 'The value of Quantity and the size of Items do not match.', + 'class' => 'InconsistentQuantitiesException', + ), + ), + ), + 'CreateStreamingDistribution' => array( + 'httpMethod' => 'POST', + 'uri' => '/2014-11-06/streaming-distribution', + 'class' => 'Guzzle\\Service\\Command\\OperationCommand', + 'responseClass' => 'CreateStreamingDistributionResult', + 'responseType' => 'model', + 'data' => array( + 'xmlRoot' => array( + 'name' => 'StreamingDistributionConfig', + 'namespaces' => array( + 'http://cloudfront.amazonaws.com/doc/2014-11-06/', + ), + ), + ), + 'parameters' => array( + 'CallerReference' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'xml', + ), + 'S3Origin' => array( + 'required' => true, + 'type' => 'object', + 'location' => 'xml', + 'properties' => array( + 'DomainName' => array( + 'required' => true, + 'type' => 'string', + ), + 'OriginAccessIdentity' => array( + 'required' => true, + 'type' => 'string', + ), + ), + ), + 'Aliases' => array( + 'type' => 'object', + 'location' => 'xml', + 'properties' => array( + 'Quantity' => array( + 'required' => true, + 'type' => 'numeric', + ), + 'Items' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'CNAME', + 'type' => 'string', + ), + ), + ), + ), + 'Comment' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'xml', + ), + 'Logging' => array( + 'type' => 'object', + 'location' => 'xml', + 'properties' => array( + 'Enabled' => array( + 'required' => true, + 'type' => 'boolean', + 'format' => 'boolean-string', + ), + 'Bucket' => array( + 'required' => true, + 'type' => 'string', + ), + 'Prefix' => array( + 'required' => true, + 'type' => 'string', + ), + ), + ), + 'TrustedSigners' => array( + 'required' => true, + 'type' => 'object', + 'location' => 'xml', + 'properties' => array( + 'Enabled' => array( + 'required' => true, + 'type' => 'boolean', + 'format' => 'boolean-string', + ), + 'Quantity' => array( + 'required' => true, + 'type' => 'numeric', + ), + 'Items' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'AwsAccountNumber', + 'type' => 'string', + ), + ), + ), + ), + 'PriceClass' => array( + 'type' => 'string', + 'location' => 'xml', + ), + 'Enabled' => array( + 'required' => true, + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'xml', + ), + 'command.expects' => array( + 'static' => true, + 'default' => 'application/xml', + ), + ), + 'errorResponses' => array( + array( + 'class' => 'CNAMEAlreadyExistsException', + ), + array( + 'class' => 'StreamingDistributionAlreadyExistsException', + ), + array( + 'reason' => 'The Amazon S3 origin server specified does not refer to a valid Amazon S3 bucket.', + 'class' => 'InvalidOriginException', + ), + array( + 'reason' => 'The origin access identity is not valid or doesn\'t exist.', + 'class' => 'InvalidOriginAccessIdentityException', + ), + array( + 'reason' => 'Access denied.', + 'class' => 'AccessDeniedException', + ), + array( + 'reason' => 'Your request contains more trusted signers than are allowed per distribution.', + 'class' => 'TooManyTrustedSignersException', + ), + array( + 'reason' => 'One or more of your trusted signers do not exist.', + 'class' => 'TrustedSignerDoesNotExistException', + ), + array( + 'reason' => 'This operation requires a body. Ensure that the body is present and the Content-Type header is set.', + 'class' => 'MissingBodyException', + ), + array( + 'class' => 'TooManyStreamingDistributionCNAMEsException', + ), + array( + 'reason' => 'Processing your request would cause you to exceed the maximum number of streaming distributions allowed.', + 'class' => 'TooManyStreamingDistributionsException', + ), + array( + 'reason' => 'The argument is invalid.', + 'class' => 'InvalidArgumentException', + ), + array( + 'reason' => 'The value of Quantity and the size of Items do not match.', + 'class' => 'InconsistentQuantitiesException', + ), + ), + ), + 'DeleteCloudFrontOriginAccessIdentity' => array( + 'httpMethod' => 'DELETE', + 'uri' => '/2014-11-06/origin-access-identity/cloudfront/{Id}', + 'class' => 'Guzzle\\Service\\Command\\OperationCommand', + 'responseClass' => 'DeleteCloudFrontOriginAccessIdentity2014_11_06Output', + 'responseType' => 'model', + 'parameters' => array( + 'Id' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'uri', + ), + 'IfMatch' => array( + 'type' => 'string', + 'location' => 'header', + 'sentAs' => 'If-Match', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'Access denied.', + 'class' => 'AccessDeniedException', + ), + array( + 'reason' => 'The If-Match version is missing or not valid for the distribution.', + 'class' => 'InvalidIfMatchVersionException', + ), + array( + 'reason' => 'The specified origin access identity does not exist.', + 'class' => 'NoSuchCloudFrontOriginAccessIdentityException', + ), + array( + 'reason' => 'The precondition given in one or more of the request-header fields evaluated to false.', + 'class' => 'PreconditionFailedException', + ), + array( + 'class' => 'CloudFrontOriginAccessIdentityInUseException', + ), + ), + ), + 'DeleteDistribution' => array( + 'httpMethod' => 'DELETE', + 'uri' => '/2014-11-06/distribution/{Id}', + 'class' => 'Guzzle\\Service\\Command\\OperationCommand', + 'responseClass' => 'DeleteDistribution2014_11_06Output', + 'responseType' => 'model', + 'parameters' => array( + 'Id' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'uri', + ), + 'IfMatch' => array( + 'type' => 'string', + 'location' => 'header', + 'sentAs' => 'If-Match', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'Access denied.', + 'class' => 'AccessDeniedException', + ), + array( + 'class' => 'DistributionNotDisabledException', + ), + array( + 'reason' => 'The If-Match version is missing or not valid for the distribution.', + 'class' => 'InvalidIfMatchVersionException', + ), + array( + 'reason' => 'The specified distribution does not exist.', + 'class' => 'NoSuchDistributionException', + ), + array( + 'reason' => 'The precondition given in one or more of the request-header fields evaluated to false.', + 'class' => 'PreconditionFailedException', + ), + ), + ), + 'DeleteStreamingDistribution' => array( + 'httpMethod' => 'DELETE', + 'uri' => '/2014-11-06/streaming-distribution/{Id}', + 'class' => 'Guzzle\\Service\\Command\\OperationCommand', + 'responseClass' => 'DeleteStreamingDistribution2014_11_06Output', + 'responseType' => 'model', + 'parameters' => array( + 'Id' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'uri', + ), + 'IfMatch' => array( + 'type' => 'string', + 'location' => 'header', + 'sentAs' => 'If-Match', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'Access denied.', + 'class' => 'AccessDeniedException', + ), + array( + 'class' => 'StreamingDistributionNotDisabledException', + ), + array( + 'reason' => 'The If-Match version is missing or not valid for the distribution.', + 'class' => 'InvalidIfMatchVersionException', + ), + array( + 'reason' => 'The specified streaming distribution does not exist.', + 'class' => 'NoSuchStreamingDistributionException', + ), + array( + 'reason' => 'The precondition given in one or more of the request-header fields evaluated to false.', + 'class' => 'PreconditionFailedException', + ), + ), + ), + 'GetCloudFrontOriginAccessIdentity' => array( + 'httpMethod' => 'GET', + 'uri' => '/2014-11-06/origin-access-identity/cloudfront/{Id}', + 'class' => 'Guzzle\\Service\\Command\\OperationCommand', + 'responseClass' => 'GetCloudFrontOriginAccessIdentityResult', + 'responseType' => 'model', + 'parameters' => array( + 'Id' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'uri', + ), + 'command.expects' => array( + 'static' => true, + 'default' => 'application/xml', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The specified origin access identity does not exist.', + 'class' => 'NoSuchCloudFrontOriginAccessIdentityException', + ), + array( + 'reason' => 'Access denied.', + 'class' => 'AccessDeniedException', + ), + ), + ), + 'GetCloudFrontOriginAccessIdentityConfig' => array( + 'httpMethod' => 'GET', + 'uri' => '/2014-11-06/origin-access-identity/cloudfront/{Id}/config', + 'class' => 'Guzzle\\Service\\Command\\OperationCommand', + 'responseClass' => 'GetCloudFrontOriginAccessIdentityConfigResult', + 'responseType' => 'model', + 'parameters' => array( + 'Id' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'uri', + ), + 'command.expects' => array( + 'static' => true, + 'default' => 'application/xml', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The specified origin access identity does not exist.', + 'class' => 'NoSuchCloudFrontOriginAccessIdentityException', + ), + array( + 'reason' => 'Access denied.', + 'class' => 'AccessDeniedException', + ), + ), + ), + 'GetDistribution' => array( + 'httpMethod' => 'GET', + 'uri' => '/2014-11-06/distribution/{Id}', + 'class' => 'Guzzle\\Service\\Command\\OperationCommand', + 'responseClass' => 'GetDistributionResult', + 'responseType' => 'model', + 'parameters' => array( + 'Id' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'uri', + ), + 'command.expects' => array( + 'static' => true, + 'default' => 'application/xml', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The specified distribution does not exist.', + 'class' => 'NoSuchDistributionException', + ), + array( + 'reason' => 'Access denied.', + 'class' => 'AccessDeniedException', + ), + ), + ), + 'GetDistributionConfig' => array( + 'httpMethod' => 'GET', + 'uri' => '/2014-11-06/distribution/{Id}/config', + 'class' => 'Guzzle\\Service\\Command\\OperationCommand', + 'responseClass' => 'GetDistributionConfigResult', + 'responseType' => 'model', + 'parameters' => array( + 'Id' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'uri', + ), + 'command.expects' => array( + 'static' => true, + 'default' => 'application/xml', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The specified distribution does not exist.', + 'class' => 'NoSuchDistributionException', + ), + array( + 'reason' => 'Access denied.', + 'class' => 'AccessDeniedException', + ), + ), + ), + 'GetInvalidation' => array( + 'httpMethod' => 'GET', + 'uri' => '/2014-11-06/distribution/{DistributionId}/invalidation/{Id}', + 'class' => 'Guzzle\\Service\\Command\\OperationCommand', + 'responseClass' => 'GetInvalidationResult', + 'responseType' => 'model', + 'parameters' => array( + 'DistributionId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'uri', + ), + 'Id' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'uri', + ), + 'command.expects' => array( + 'static' => true, + 'default' => 'application/xml', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The specified invalidation does not exist.', + 'class' => 'NoSuchInvalidationException', + ), + array( + 'reason' => 'The specified distribution does not exist.', + 'class' => 'NoSuchDistributionException', + ), + array( + 'reason' => 'Access denied.', + 'class' => 'AccessDeniedException', + ), + ), + ), + 'GetStreamingDistribution' => array( + 'httpMethod' => 'GET', + 'uri' => '/2014-11-06/streaming-distribution/{Id}', + 'class' => 'Guzzle\\Service\\Command\\OperationCommand', + 'responseClass' => 'GetStreamingDistributionResult', + 'responseType' => 'model', + 'parameters' => array( + 'Id' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'uri', + ), + 'command.expects' => array( + 'static' => true, + 'default' => 'application/xml', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The specified streaming distribution does not exist.', + 'class' => 'NoSuchStreamingDistributionException', + ), + array( + 'reason' => 'Access denied.', + 'class' => 'AccessDeniedException', + ), + ), + ), + 'GetStreamingDistributionConfig' => array( + 'httpMethod' => 'GET', + 'uri' => '/2014-11-06/streaming-distribution/{Id}/config', + 'class' => 'Guzzle\\Service\\Command\\OperationCommand', + 'responseClass' => 'GetStreamingDistributionConfigResult', + 'responseType' => 'model', + 'parameters' => array( + 'Id' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'uri', + ), + 'command.expects' => array( + 'static' => true, + 'default' => 'application/xml', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The specified streaming distribution does not exist.', + 'class' => 'NoSuchStreamingDistributionException', + ), + array( + 'reason' => 'Access denied.', + 'class' => 'AccessDeniedException', + ), + ), + ), + 'ListCloudFrontOriginAccessIdentities' => array( + 'httpMethod' => 'GET', + 'uri' => '/2014-11-06/origin-access-identity/cloudfront', + 'class' => 'Guzzle\\Service\\Command\\OperationCommand', + 'responseClass' => 'ListCloudFrontOriginAccessIdentitiesResult', + 'responseType' => 'model', + 'parameters' => array( + 'Marker' => array( + 'type' => 'string', + 'location' => 'query', + ), + 'MaxItems' => array( + 'type' => 'string', + 'location' => 'query', + ), + 'command.expects' => array( + 'static' => true, + 'default' => 'application/xml', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The argument is invalid.', + 'class' => 'InvalidArgumentException', + ), + ), + ), + 'ListDistributions' => array( + 'httpMethod' => 'GET', + 'uri' => '/2014-11-06/distribution', + 'class' => 'Guzzle\\Service\\Command\\OperationCommand', + 'responseClass' => 'ListDistributionsResult', + 'responseType' => 'model', + 'parameters' => array( + 'Marker' => array( + 'type' => 'string', + 'location' => 'query', + ), + 'MaxItems' => array( + 'type' => 'string', + 'location' => 'query', + ), + 'command.expects' => array( + 'static' => true, + 'default' => 'application/xml', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The argument is invalid.', + 'class' => 'InvalidArgumentException', + ), + ), + ), + 'ListInvalidations' => array( + 'httpMethod' => 'GET', + 'uri' => '/2014-11-06/distribution/{DistributionId}/invalidation', + 'class' => 'Guzzle\\Service\\Command\\OperationCommand', + 'responseClass' => 'ListInvalidationsResult', + 'responseType' => 'model', + 'parameters' => array( + 'DistributionId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'uri', + ), + 'Marker' => array( + 'type' => 'string', + 'location' => 'query', + ), + 'MaxItems' => array( + 'type' => 'string', + 'location' => 'query', + ), + 'command.expects' => array( + 'static' => true, + 'default' => 'application/xml', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The argument is invalid.', + 'class' => 'InvalidArgumentException', + ), + array( + 'reason' => 'The specified distribution does not exist.', + 'class' => 'NoSuchDistributionException', + ), + array( + 'reason' => 'Access denied.', + 'class' => 'AccessDeniedException', + ), + ), + ), + 'ListStreamingDistributions' => array( + 'httpMethod' => 'GET', + 'uri' => '/2014-11-06/streaming-distribution', + 'class' => 'Guzzle\\Service\\Command\\OperationCommand', + 'responseClass' => 'ListStreamingDistributionsResult', + 'responseType' => 'model', + 'parameters' => array( + 'Marker' => array( + 'type' => 'string', + 'location' => 'query', + ), + 'MaxItems' => array( + 'type' => 'string', + 'location' => 'query', + ), + 'command.expects' => array( + 'static' => true, + 'default' => 'application/xml', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The argument is invalid.', + 'class' => 'InvalidArgumentException', + ), + ), + ), + 'UpdateCloudFrontOriginAccessIdentity' => array( + 'httpMethod' => 'PUT', + 'uri' => '/2014-11-06/origin-access-identity/cloudfront/{Id}/config', + 'class' => 'Guzzle\\Service\\Command\\OperationCommand', + 'responseClass' => 'UpdateCloudFrontOriginAccessIdentityResult', + 'responseType' => 'model', + 'data' => array( + 'xmlRoot' => array( + 'name' => 'CloudFrontOriginAccessIdentityConfig', + 'namespaces' => array( + 'http://cloudfront.amazonaws.com/doc/2014-11-06/', + ), + ), + ), + 'parameters' => array( + 'CallerReference' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'xml', + ), + 'Comment' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'xml', + ), + 'Id' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'uri', + ), + 'IfMatch' => array( + 'type' => 'string', + 'location' => 'header', + 'sentAs' => 'If-Match', + ), + 'command.expects' => array( + 'static' => true, + 'default' => 'application/xml', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'Access denied.', + 'class' => 'AccessDeniedException', + ), + array( + 'reason' => 'Origin and CallerReference cannot be updated.', + 'class' => 'IllegalUpdateException', + ), + array( + 'reason' => 'The If-Match version is missing or not valid for the distribution.', + 'class' => 'InvalidIfMatchVersionException', + ), + array( + 'reason' => 'This operation requires a body. Ensure that the body is present and the Content-Type header is set.', + 'class' => 'MissingBodyException', + ), + array( + 'reason' => 'The specified origin access identity does not exist.', + 'class' => 'NoSuchCloudFrontOriginAccessIdentityException', + ), + array( + 'reason' => 'The precondition given in one or more of the request-header fields evaluated to false.', + 'class' => 'PreconditionFailedException', + ), + array( + 'reason' => 'The argument is invalid.', + 'class' => 'InvalidArgumentException', + ), + array( + 'reason' => 'The value of Quantity and the size of Items do not match.', + 'class' => 'InconsistentQuantitiesException', + ), + ), + ), + 'UpdateDistribution' => array( + 'httpMethod' => 'PUT', + 'uri' => '/2014-11-06/distribution/{Id}/config', + 'class' => 'Guzzle\\Service\\Command\\OperationCommand', + 'responseClass' => 'UpdateDistributionResult', + 'responseType' => 'model', + 'data' => array( + 'xmlRoot' => array( + 'name' => 'DistributionConfig', + 'namespaces' => array( + 'http://cloudfront.amazonaws.com/doc/2014-11-06/', + ), + ), + ), + 'parameters' => array( + 'CallerReference' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'xml', + ), + 'Aliases' => array( + 'type' => 'object', + 'location' => 'xml', + 'properties' => array( + 'Quantity' => array( + 'required' => true, + 'type' => 'numeric', + ), + 'Items' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'CNAME', + 'type' => 'string', + ), + ), + ), + ), + 'DefaultRootObject' => array( + 'type' => 'string', + 'location' => 'xml', + ), + 'Origins' => array( + 'required' => true, + 'type' => 'object', + 'location' => 'xml', + 'properties' => array( + 'Quantity' => array( + 'required' => true, + 'type' => 'numeric', + ), + 'Items' => array( + 'type' => 'array', + 'minItems' => 1, + 'items' => array( + 'name' => 'Origin', + 'type' => 'object', + 'properties' => array( + 'Id' => array( + 'required' => true, + 'type' => 'string', + ), + 'DomainName' => array( + 'required' => true, + 'type' => 'string', + ), + 'OriginPath' => array( + 'type' => 'string', + ), + 'S3OriginConfig' => array( + 'type' => 'object', + 'properties' => array( + 'OriginAccessIdentity' => array( + 'required' => true, + 'type' => 'string', + ), + ), + ), + 'CustomOriginConfig' => array( + 'type' => 'object', + 'properties' => array( + 'HTTPPort' => array( + 'required' => true, + 'type' => 'numeric', + ), + 'HTTPSPort' => array( + 'required' => true, + 'type' => 'numeric', + ), + 'OriginProtocolPolicy' => array( + 'required' => true, + 'type' => 'string', + ), + ), + ), + ), + ), + ), + ), + ), + 'DefaultCacheBehavior' => array( + 'required' => true, + 'type' => 'object', + 'location' => 'xml', + 'properties' => array( + 'TargetOriginId' => array( + 'required' => true, + 'type' => 'string', + ), + 'ForwardedValues' => array( + 'required' => true, + 'type' => 'object', + 'properties' => array( + 'QueryString' => array( + 'required' => true, + 'type' => 'boolean', + 'format' => 'boolean-string', + ), + 'Cookies' => array( + 'required' => true, + 'type' => 'object', + 'properties' => array( + 'Forward' => array( + 'required' => true, + 'type' => 'string', + ), + 'WhitelistedNames' => array( + 'type' => 'object', + 'properties' => array( + 'Quantity' => array( + 'required' => true, + 'type' => 'numeric', + ), + 'Items' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Name', + 'type' => 'string', + ), + ), + ), + ), + ), + ), + 'Headers' => array( + 'type' => 'object', + 'properties' => array( + 'Quantity' => array( + 'required' => true, + 'type' => 'numeric', + ), + 'Items' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Name', + 'type' => 'string', + ), + ), + ), + ), + ), + ), + 'TrustedSigners' => array( + 'required' => true, + 'type' => 'object', + 'properties' => array( + 'Enabled' => array( + 'required' => true, + 'type' => 'boolean', + 'format' => 'boolean-string', + ), + 'Quantity' => array( + 'required' => true, + 'type' => 'numeric', + ), + 'Items' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'AwsAccountNumber', + 'type' => 'string', + ), + ), + ), + ), + 'ViewerProtocolPolicy' => array( + 'required' => true, + 'type' => 'string', + ), + 'MinTTL' => array( + 'required' => true, + 'type' => 'numeric', + ), + 'AllowedMethods' => array( + 'type' => 'object', + 'properties' => array( + 'Quantity' => array( + 'required' => true, + 'type' => 'numeric', + ), + 'Items' => array( + 'required' => true, + 'type' => 'array', + 'items' => array( + 'name' => 'Method', + 'type' => 'string', + ), + ), + 'CachedMethods' => array( + 'type' => 'object', + 'properties' => array( + 'Quantity' => array( + 'required' => true, + 'type' => 'numeric', + ), + 'Items' => array( + 'required' => true, + 'type' => 'array', + 'items' => array( + 'name' => 'Method', + 'type' => 'string', + ), + ), + ), + ), + ), + ), + 'SmoothStreaming' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + ), + ), + ), + 'CacheBehaviors' => array( + 'type' => 'object', + 'location' => 'xml', + 'properties' => array( + 'Quantity' => array( + 'required' => true, + 'type' => 'numeric', + ), + 'Items' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'CacheBehavior', + 'type' => 'object', + 'properties' => array( + 'PathPattern' => array( + 'required' => true, + 'type' => 'string', + ), + 'TargetOriginId' => array( + 'required' => true, + 'type' => 'string', + ), + 'ForwardedValues' => array( + 'required' => true, + 'type' => 'object', + 'properties' => array( + 'QueryString' => array( + 'required' => true, + 'type' => 'boolean', + 'format' => 'boolean-string', + ), + 'Cookies' => array( + 'required' => true, + 'type' => 'object', + 'properties' => array( + 'Forward' => array( + 'required' => true, + 'type' => 'string', + ), + 'WhitelistedNames' => array( + 'type' => 'object', + 'properties' => array( + 'Quantity' => array( + 'required' => true, + 'type' => 'numeric', + ), + 'Items' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Name', + 'type' => 'string', + ), + ), + ), + ), + ), + ), + 'Headers' => array( + 'type' => 'object', + 'properties' => array( + 'Quantity' => array( + 'required' => true, + 'type' => 'numeric', + ), + 'Items' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Name', + 'type' => 'string', + ), + ), + ), + ), + ), + ), + 'TrustedSigners' => array( + 'required' => true, + 'type' => 'object', + 'properties' => array( + 'Enabled' => array( + 'required' => true, + 'type' => 'boolean', + 'format' => 'boolean-string', + ), + 'Quantity' => array( + 'required' => true, + 'type' => 'numeric', + ), + 'Items' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'AwsAccountNumber', + 'type' => 'string', + ), + ), + ), + ), + 'ViewerProtocolPolicy' => array( + 'required' => true, + 'type' => 'string', + ), + 'MinTTL' => array( + 'required' => true, + 'type' => 'numeric', + ), + 'AllowedMethods' => array( + 'type' => 'object', + 'properties' => array( + 'Quantity' => array( + 'required' => true, + 'type' => 'numeric', + ), + 'Items' => array( + 'required' => true, + 'type' => 'array', + 'items' => array( + 'name' => 'Method', + 'type' => 'string', + ), + ), + 'CachedMethods' => array( + 'type' => 'object', + 'properties' => array( + 'Quantity' => array( + 'required' => true, + 'type' => 'numeric', + ), + 'Items' => array( + 'required' => true, + 'type' => 'array', + 'items' => array( + 'name' => 'Method', + 'type' => 'string', + ), + ), + ), + ), + ), + ), + 'SmoothStreaming' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + ), + ), + ), + ), + ), + ), + 'CustomErrorResponses' => array( + 'type' => 'object', + 'location' => 'xml', + 'properties' => array( + 'Quantity' => array( + 'required' => true, + 'type' => 'numeric', + ), + 'Items' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'CustomErrorResponse', + 'type' => 'object', + 'properties' => array( + 'ErrorCode' => array( + 'required' => true, + 'type' => 'numeric', + ), + 'ResponsePagePath' => array( + 'type' => 'string', + ), + 'ResponseCode' => array( + 'type' => 'string', + ), + 'ErrorCachingMinTTL' => array( + 'type' => 'numeric', + ), + ), + ), + ), + ), + ), + 'Comment' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'xml', + ), + 'Logging' => array( + 'type' => 'object', + 'location' => 'xml', + 'properties' => array( + 'Enabled' => array( + 'required' => true, + 'type' => 'boolean', + 'format' => 'boolean-string', + ), + 'IncludeCookies' => array( + 'required' => true, + 'type' => 'boolean', + 'format' => 'boolean-string', + ), + 'Bucket' => array( + 'required' => true, + 'type' => 'string', + ), + 'Prefix' => array( + 'required' => true, + 'type' => 'string', + ), + ), + ), + 'PriceClass' => array( + 'type' => 'string', + 'location' => 'xml', + ), + 'Enabled' => array( + 'required' => true, + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'xml', + ), + 'ViewerCertificate' => array( + 'type' => 'object', + 'location' => 'xml', + 'properties' => array( + 'IAMCertificateId' => array( + 'type' => 'string', + ), + 'CloudFrontDefaultCertificate' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + ), + 'SSLSupportMethod' => array( + 'type' => 'string', + ), + 'MinimumProtocolVersion' => array( + 'type' => 'string', + ), + ), + ), + 'Restrictions' => array( + 'type' => 'object', + 'location' => 'xml', + 'properties' => array( + 'GeoRestriction' => array( + 'required' => true, + 'type' => 'object', + 'properties' => array( + 'RestrictionType' => array( + 'required' => true, + 'type' => 'string', + ), + 'Quantity' => array( + 'required' => true, + 'type' => 'numeric', + ), + 'Items' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Location', + 'type' => 'string', + ), + ), + ), + ), + ), + ), + 'Id' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'uri', + ), + 'IfMatch' => array( + 'type' => 'string', + 'location' => 'header', + 'sentAs' => 'If-Match', + ), + 'command.expects' => array( + 'static' => true, + 'default' => 'application/xml', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'Access denied.', + 'class' => 'AccessDeniedException', + ), + array( + 'class' => 'CNAMEAlreadyExistsException', + ), + array( + 'reason' => 'Origin and CallerReference cannot be updated.', + 'class' => 'IllegalUpdateException', + ), + array( + 'reason' => 'The If-Match version is missing or not valid for the distribution.', + 'class' => 'InvalidIfMatchVersionException', + ), + array( + 'reason' => 'This operation requires a body. Ensure that the body is present and the Content-Type header is set.', + 'class' => 'MissingBodyException', + ), + array( + 'reason' => 'The specified distribution does not exist.', + 'class' => 'NoSuchDistributionException', + ), + array( + 'reason' => 'The precondition given in one or more of the request-header fields evaluated to false.', + 'class' => 'PreconditionFailedException', + ), + array( + 'reason' => 'Your request contains more CNAMEs than are allowed per distribution.', + 'class' => 'TooManyDistributionCNAMEsException', + ), + array( + 'reason' => 'The default root object file name is too big or contains an invalid character.', + 'class' => 'InvalidDefaultRootObjectException', + ), + array( + 'reason' => 'The relative path is too big, is not URL-encoded, or does not begin with a slash (/).', + 'class' => 'InvalidRelativePathException', + ), + array( + 'class' => 'InvalidErrorCodeException', + ), + array( + 'class' => 'InvalidResponseCodeException', + ), + array( + 'reason' => 'The argument is invalid.', + 'class' => 'InvalidArgumentException', + ), + array( + 'reason' => 'The origin access identity is not valid or doesn\'t exist.', + 'class' => 'InvalidOriginAccessIdentityException', + ), + array( + 'reason' => 'Your request contains more trusted signers than are allowed per distribution.', + 'class' => 'TooManyTrustedSignersException', + ), + array( + 'reason' => 'One or more of your trusted signers do not exist.', + 'class' => 'TrustedSignerDoesNotExistException', + ), + array( + 'class' => 'InvalidViewerCertificateException', + ), + array( + 'reason' => 'This operation requires the HTTPS protocol. Ensure that you specify the HTTPS protocol in your request, or omit the RequiredProtocols element from your distribution configuration.', + 'class' => 'InvalidRequiredProtocolException', + ), + array( + 'reason' => 'No origin exists with the specified Origin Id.', + 'class' => 'NoSuchOriginException', + ), + array( + 'reason' => 'You cannot create anymore origins for the distribution.', + 'class' => 'TooManyOriginsException', + ), + array( + 'reason' => 'You cannot create anymore cache behaviors for the distribution.', + 'class' => 'TooManyCacheBehaviorsException', + ), + array( + 'reason' => 'Your request contains more cookie names in the whitelist than are allowed per cache behavior.', + 'class' => 'TooManyCookieNamesInWhiteListException', + ), + array( + 'reason' => 'Your request contains forward cookies option which doesn\'t match with the expectation for the whitelisted list of cookie names. Either list of cookie names has been specified when not allowed or list of cookie names is missing when expected.', + 'class' => 'InvalidForwardCookiesException', + ), + array( + 'class' => 'TooManyHeadersInForwardedValuesException', + ), + array( + 'class' => 'InvalidHeadersForS3OriginException', + ), + array( + 'reason' => 'The value of Quantity and the size of Items do not match.', + 'class' => 'InconsistentQuantitiesException', + ), + array( + 'reason' => 'You cannot create anymore custom ssl certificates.', + 'class' => 'TooManyCertificatesException', + ), + array( + 'class' => 'InvalidLocationCodeException', + ), + array( + 'class' => 'InvalidGeoRestrictionParameterException', + ), + ), + ), + 'UpdateStreamingDistribution' => array( + 'httpMethod' => 'PUT', + 'uri' => '/2014-11-06/streaming-distribution/{Id}/config', + 'class' => 'Guzzle\\Service\\Command\\OperationCommand', + 'responseClass' => 'UpdateStreamingDistributionResult', + 'responseType' => 'model', + 'data' => array( + 'xmlRoot' => array( + 'name' => 'StreamingDistributionConfig', + 'namespaces' => array( + 'http://cloudfront.amazonaws.com/doc/2014-11-06/', + ), + ), + ), + 'parameters' => array( + 'CallerReference' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'xml', + ), + 'S3Origin' => array( + 'required' => true, + 'type' => 'object', + 'location' => 'xml', + 'properties' => array( + 'DomainName' => array( + 'required' => true, + 'type' => 'string', + ), + 'OriginAccessIdentity' => array( + 'required' => true, + 'type' => 'string', + ), + ), + ), + 'Aliases' => array( + 'type' => 'object', + 'location' => 'xml', + 'properties' => array( + 'Quantity' => array( + 'required' => true, + 'type' => 'numeric', + ), + 'Items' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'CNAME', + 'type' => 'string', + ), + ), + ), + ), + 'Comment' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'xml', + ), + 'Logging' => array( + 'type' => 'object', + 'location' => 'xml', + 'properties' => array( + 'Enabled' => array( + 'required' => true, + 'type' => 'boolean', + 'format' => 'boolean-string', + ), + 'Bucket' => array( + 'required' => true, + 'type' => 'string', + ), + 'Prefix' => array( + 'required' => true, + 'type' => 'string', + ), + ), + ), + 'TrustedSigners' => array( + 'required' => true, + 'type' => 'object', + 'location' => 'xml', + 'properties' => array( + 'Enabled' => array( + 'required' => true, + 'type' => 'boolean', + 'format' => 'boolean-string', + ), + 'Quantity' => array( + 'required' => true, + 'type' => 'numeric', + ), + 'Items' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'AwsAccountNumber', + 'type' => 'string', + ), + ), + ), + ), + 'PriceClass' => array( + 'type' => 'string', + 'location' => 'xml', + ), + 'Enabled' => array( + 'required' => true, + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'xml', + ), + 'Id' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'uri', + ), + 'IfMatch' => array( + 'type' => 'string', + 'location' => 'header', + 'sentAs' => 'If-Match', + ), + 'command.expects' => array( + 'static' => true, + 'default' => 'application/xml', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'Access denied.', + 'class' => 'AccessDeniedException', + ), + array( + 'class' => 'CNAMEAlreadyExistsException', + ), + array( + 'reason' => 'Origin and CallerReference cannot be updated.', + 'class' => 'IllegalUpdateException', + ), + array( + 'reason' => 'The If-Match version is missing or not valid for the distribution.', + 'class' => 'InvalidIfMatchVersionException', + ), + array( + 'reason' => 'This operation requires a body. Ensure that the body is present and the Content-Type header is set.', + 'class' => 'MissingBodyException', + ), + array( + 'reason' => 'The specified streaming distribution does not exist.', + 'class' => 'NoSuchStreamingDistributionException', + ), + array( + 'reason' => 'The precondition given in one or more of the request-header fields evaluated to false.', + 'class' => 'PreconditionFailedException', + ), + array( + 'class' => 'TooManyStreamingDistributionCNAMEsException', + ), + array( + 'reason' => 'The argument is invalid.', + 'class' => 'InvalidArgumentException', + ), + array( + 'reason' => 'The origin access identity is not valid or doesn\'t exist.', + 'class' => 'InvalidOriginAccessIdentityException', + ), + array( + 'reason' => 'Your request contains more trusted signers than are allowed per distribution.', + 'class' => 'TooManyTrustedSignersException', + ), + array( + 'reason' => 'One or more of your trusted signers do not exist.', + 'class' => 'TrustedSignerDoesNotExistException', + ), + array( + 'reason' => 'The value of Quantity and the size of Items do not match.', + 'class' => 'InconsistentQuantitiesException', + ), + ), + ), + ), + 'models' => array( + 'CreateCloudFrontOriginAccessIdentityResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'Id' => array( + 'type' => 'string', + 'location' => 'xml', + ), + 'S3CanonicalUserId' => array( + 'type' => 'string', + 'location' => 'xml', + ), + 'CloudFrontOriginAccessIdentityConfig' => array( + 'type' => 'object', + 'location' => 'xml', + 'properties' => array( + 'CallerReference' => array( + 'type' => 'string', + ), + 'Comment' => array( + 'type' => 'string', + ), + ), + ), + 'Location' => array( + 'type' => 'string', + 'location' => 'header', + ), + 'ETag' => array( + 'type' => 'string', + 'location' => 'header', + ), + 'RequestId' => array( + 'location' => 'header', + 'sentAs' => 'x-amz-request-id', + ), + ), + ), + 'CreateDistributionResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'Id' => array( + 'type' => 'string', + 'location' => 'xml', + ), + 'Status' => array( + 'type' => 'string', + 'location' => 'xml', + ), + 'LastModifiedTime' => array( + 'type' => 'string', + 'location' => 'xml', + ), + 'InProgressInvalidationBatches' => array( + 'type' => 'numeric', + 'location' => 'xml', + ), + 'DomainName' => array( + 'type' => 'string', + 'location' => 'xml', + ), + 'ActiveTrustedSigners' => array( + 'type' => 'object', + 'location' => 'xml', + 'properties' => array( + 'Enabled' => array( + 'type' => 'boolean', + ), + 'Quantity' => array( + 'type' => 'numeric', + ), + 'Items' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Signer', + 'type' => 'object', + 'sentAs' => 'Signer', + 'properties' => array( + 'AwsAccountNumber' => array( + 'type' => 'string', + ), + 'KeyPairIds' => array( + 'type' => 'object', + 'properties' => array( + 'Quantity' => array( + 'type' => 'numeric', + ), + 'Items' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'KeyPairId', + 'type' => 'string', + 'sentAs' => 'KeyPairId', + ), + ), + ), + ), + ), + ), + ), + ), + ), + 'DistributionConfig' => array( + 'type' => 'object', + 'location' => 'xml', + 'properties' => array( + 'CallerReference' => array( + 'type' => 'string', + ), + 'Aliases' => array( + 'type' => 'object', + 'properties' => array( + 'Quantity' => array( + 'type' => 'numeric', + ), + 'Items' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'CNAME', + 'type' => 'string', + 'sentAs' => 'CNAME', + ), + ), + ), + ), + 'DefaultRootObject' => array( + 'type' => 'string', + ), + 'Origins' => array( + 'type' => 'object', + 'properties' => array( + 'Quantity' => array( + 'type' => 'numeric', + ), + 'Items' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Origin', + 'type' => 'object', + 'sentAs' => 'Origin', + 'properties' => array( + 'Id' => array( + 'type' => 'string', + ), + 'DomainName' => array( + 'type' => 'string', + ), + 'OriginPath' => array( + 'type' => 'string', + ), + 'S3OriginConfig' => array( + 'type' => 'object', + 'properties' => array( + 'OriginAccessIdentity' => array( + 'type' => 'string', + ), + ), + ), + 'CustomOriginConfig' => array( + 'type' => 'object', + 'properties' => array( + 'HTTPPort' => array( + 'type' => 'numeric', + ), + 'HTTPSPort' => array( + 'type' => 'numeric', + ), + 'OriginProtocolPolicy' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + ), + ), + 'DefaultCacheBehavior' => array( + 'type' => 'object', + 'properties' => array( + 'TargetOriginId' => array( + 'type' => 'string', + ), + 'ForwardedValues' => array( + 'type' => 'object', + 'properties' => array( + 'QueryString' => array( + 'type' => 'boolean', + ), + 'Cookies' => array( + 'type' => 'object', + 'properties' => array( + 'Forward' => array( + 'type' => 'string', + ), + 'WhitelistedNames' => array( + 'type' => 'object', + 'properties' => array( + 'Quantity' => array( + 'type' => 'numeric', + ), + 'Items' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Name', + 'type' => 'string', + 'sentAs' => 'Name', + ), + ), + ), + ), + ), + ), + 'Headers' => array( + 'type' => 'object', + 'properties' => array( + 'Quantity' => array( + 'type' => 'numeric', + ), + 'Items' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Name', + 'type' => 'string', + 'sentAs' => 'Name', + ), + ), + ), + ), + ), + ), + 'TrustedSigners' => array( + 'type' => 'object', + 'properties' => array( + 'Enabled' => array( + 'type' => 'boolean', + ), + 'Quantity' => array( + 'type' => 'numeric', + ), + 'Items' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'AwsAccountNumber', + 'type' => 'string', + 'sentAs' => 'AwsAccountNumber', + ), + ), + ), + ), + 'ViewerProtocolPolicy' => array( + 'type' => 'string', + ), + 'MinTTL' => array( + 'type' => 'numeric', + ), + 'AllowedMethods' => array( + 'type' => 'object', + 'properties' => array( + 'Quantity' => array( + 'type' => 'numeric', + ), + 'Items' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Method', + 'type' => 'string', + 'sentAs' => 'Method', + ), + ), + 'CachedMethods' => array( + 'type' => 'object', + 'properties' => array( + 'Quantity' => array( + 'type' => 'numeric', + ), + 'Items' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Method', + 'type' => 'string', + 'sentAs' => 'Method', + ), + ), + ), + ), + ), + ), + 'SmoothStreaming' => array( + 'type' => 'boolean', + ), + ), + ), + 'CacheBehaviors' => array( + 'type' => 'object', + 'properties' => array( + 'Quantity' => array( + 'type' => 'numeric', + ), + 'Items' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'CacheBehavior', + 'type' => 'object', + 'sentAs' => 'CacheBehavior', + 'properties' => array( + 'PathPattern' => array( + 'type' => 'string', + ), + 'TargetOriginId' => array( + 'type' => 'string', + ), + 'ForwardedValues' => array( + 'type' => 'object', + 'properties' => array( + 'QueryString' => array( + 'type' => 'boolean', + ), + 'Cookies' => array( + 'type' => 'object', + 'properties' => array( + 'Forward' => array( + 'type' => 'string', + ), + 'WhitelistedNames' => array( + 'type' => 'object', + 'properties' => array( + 'Quantity' => array( + 'type' => 'numeric', + ), + 'Items' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Name', + 'type' => 'string', + 'sentAs' => 'Name', + ), + ), + ), + ), + ), + ), + 'Headers' => array( + 'type' => 'object', + 'properties' => array( + 'Quantity' => array( + 'type' => 'numeric', + ), + 'Items' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Name', + 'type' => 'string', + 'sentAs' => 'Name', + ), + ), + ), + ), + ), + ), + 'TrustedSigners' => array( + 'type' => 'object', + 'properties' => array( + 'Enabled' => array( + 'type' => 'boolean', + ), + 'Quantity' => array( + 'type' => 'numeric', + ), + 'Items' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'AwsAccountNumber', + 'type' => 'string', + 'sentAs' => 'AwsAccountNumber', + ), + ), + ), + ), + 'ViewerProtocolPolicy' => array( + 'type' => 'string', + ), + 'MinTTL' => array( + 'type' => 'numeric', + ), + 'AllowedMethods' => array( + 'type' => 'object', + 'properties' => array( + 'Quantity' => array( + 'type' => 'numeric', + ), + 'Items' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Method', + 'type' => 'string', + 'sentAs' => 'Method', + ), + ), + 'CachedMethods' => array( + 'type' => 'object', + 'properties' => array( + 'Quantity' => array( + 'type' => 'numeric', + ), + 'Items' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Method', + 'type' => 'string', + 'sentAs' => 'Method', + ), + ), + ), + ), + ), + ), + 'SmoothStreaming' => array( + 'type' => 'boolean', + ), + ), + ), + ), + ), + ), + 'CustomErrorResponses' => array( + 'type' => 'object', + 'properties' => array( + 'Quantity' => array( + 'type' => 'numeric', + ), + 'Items' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'CustomErrorResponse', + 'type' => 'object', + 'sentAs' => 'CustomErrorResponse', + 'properties' => array( + 'ErrorCode' => array( + 'type' => 'numeric', + ), + 'ResponsePagePath' => array( + 'type' => 'string', + ), + 'ResponseCode' => array( + 'type' => 'string', + ), + 'ErrorCachingMinTTL' => array( + 'type' => 'numeric', + ), + ), + ), + ), + ), + ), + 'Comment' => array( + 'type' => 'string', + ), + 'Logging' => array( + 'type' => 'object', + 'properties' => array( + 'Enabled' => array( + 'type' => 'boolean', + ), + 'IncludeCookies' => array( + 'type' => 'boolean', + ), + 'Bucket' => array( + 'type' => 'string', + ), + 'Prefix' => array( + 'type' => 'string', + ), + ), + ), + 'PriceClass' => array( + 'type' => 'string', + ), + 'Enabled' => array( + 'type' => 'boolean', + ), + 'ViewerCertificate' => array( + 'type' => 'object', + 'properties' => array( + 'IAMCertificateId' => array( + 'type' => 'string', + ), + 'CloudFrontDefaultCertificate' => array( + 'type' => 'boolean', + ), + 'SSLSupportMethod' => array( + 'type' => 'string', + ), + 'MinimumProtocolVersion' => array( + 'type' => 'string', + ), + ), + ), + 'Restrictions' => array( + 'type' => 'object', + 'properties' => array( + 'GeoRestriction' => array( + 'type' => 'object', + 'properties' => array( + 'RestrictionType' => array( + 'type' => 'string', + ), + 'Quantity' => array( + 'type' => 'numeric', + ), + 'Items' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Location', + 'type' => 'string', + 'sentAs' => 'Location', + ), + ), + ), + ), + ), + ), + ), + ), + 'Location' => array( + 'type' => 'string', + 'location' => 'header', + ), + 'ETag' => array( + 'type' => 'string', + 'location' => 'header', + ), + 'RequestId' => array( + 'location' => 'header', + 'sentAs' => 'x-amz-request-id', + ), + ), + ), + 'CreateInvalidationResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'Location' => array( + 'type' => 'string', + 'location' => 'header', + ), + 'Id' => array( + 'type' => 'string', + 'location' => 'xml', + ), + 'Status' => array( + 'type' => 'string', + 'location' => 'xml', + ), + 'CreateTime' => array( + 'type' => 'string', + 'location' => 'xml', + ), + 'InvalidationBatch' => array( + 'type' => 'object', + 'location' => 'xml', + 'properties' => array( + 'Paths' => array( + 'type' => 'object', + 'properties' => array( + 'Quantity' => array( + 'type' => 'numeric', + ), + 'Items' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Path', + 'type' => 'string', + 'sentAs' => 'Path', + ), + ), + ), + ), + 'CallerReference' => array( + 'type' => 'string', + ), + ), + ), + 'RequestId' => array( + 'location' => 'header', + 'sentAs' => 'x-amz-request-id', + ), + ), + ), + 'CreateStreamingDistributionResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'Id' => array( + 'type' => 'string', + 'location' => 'xml', + ), + 'Status' => array( + 'type' => 'string', + 'location' => 'xml', + ), + 'LastModifiedTime' => array( + 'type' => 'string', + 'location' => 'xml', + ), + 'DomainName' => array( + 'type' => 'string', + 'location' => 'xml', + ), + 'ActiveTrustedSigners' => array( + 'type' => 'object', + 'location' => 'xml', + 'properties' => array( + 'Enabled' => array( + 'type' => 'boolean', + ), + 'Quantity' => array( + 'type' => 'numeric', + ), + 'Items' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Signer', + 'type' => 'object', + 'sentAs' => 'Signer', + 'properties' => array( + 'AwsAccountNumber' => array( + 'type' => 'string', + ), + 'KeyPairIds' => array( + 'type' => 'object', + 'properties' => array( + 'Quantity' => array( + 'type' => 'numeric', + ), + 'Items' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'KeyPairId', + 'type' => 'string', + 'sentAs' => 'KeyPairId', + ), + ), + ), + ), + ), + ), + ), + ), + ), + 'StreamingDistributionConfig' => array( + 'type' => 'object', + 'location' => 'xml', + 'properties' => array( + 'CallerReference' => array( + 'type' => 'string', + ), + 'S3Origin' => array( + 'type' => 'object', + 'properties' => array( + 'DomainName' => array( + 'type' => 'string', + ), + 'OriginAccessIdentity' => array( + 'type' => 'string', + ), + ), + ), + 'Aliases' => array( + 'type' => 'object', + 'properties' => array( + 'Quantity' => array( + 'type' => 'numeric', + ), + 'Items' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'CNAME', + 'type' => 'string', + 'sentAs' => 'CNAME', + ), + ), + ), + ), + 'Comment' => array( + 'type' => 'string', + ), + 'Logging' => array( + 'type' => 'object', + 'properties' => array( + 'Enabled' => array( + 'type' => 'boolean', + ), + 'Bucket' => array( + 'type' => 'string', + ), + 'Prefix' => array( + 'type' => 'string', + ), + ), + ), + 'TrustedSigners' => array( + 'type' => 'object', + 'properties' => array( + 'Enabled' => array( + 'type' => 'boolean', + ), + 'Quantity' => array( + 'type' => 'numeric', + ), + 'Items' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'AwsAccountNumber', + 'type' => 'string', + 'sentAs' => 'AwsAccountNumber', + ), + ), + ), + ), + 'PriceClass' => array( + 'type' => 'string', + ), + 'Enabled' => array( + 'type' => 'boolean', + ), + ), + ), + 'Location' => array( + 'type' => 'string', + 'location' => 'header', + ), + 'ETag' => array( + 'type' => 'string', + 'location' => 'header', + ), + 'RequestId' => array( + 'location' => 'header', + 'sentAs' => 'x-amz-request-id', + ), + ), + ), + 'DeleteCloudFrontOriginAccessIdentity2014_11_06Output' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'RequestId' => array( + 'location' => 'header', + 'sentAs' => 'x-amz-request-id', + ), + ), + ), + 'DeleteDistribution2014_11_06Output' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'RequestId' => array( + 'location' => 'header', + 'sentAs' => 'x-amz-request-id', + ), + ), + ), + 'DeleteStreamingDistribution2014_11_06Output' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'RequestId' => array( + 'location' => 'header', + 'sentAs' => 'x-amz-request-id', + ), + ), + ), + 'GetCloudFrontOriginAccessIdentityResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'Id' => array( + 'type' => 'string', + 'location' => 'xml', + ), + 'S3CanonicalUserId' => array( + 'type' => 'string', + 'location' => 'xml', + ), + 'CloudFrontOriginAccessIdentityConfig' => array( + 'type' => 'object', + 'location' => 'xml', + 'properties' => array( + 'CallerReference' => array( + 'type' => 'string', + ), + 'Comment' => array( + 'type' => 'string', + ), + ), + ), + 'ETag' => array( + 'type' => 'string', + 'location' => 'header', + ), + 'RequestId' => array( + 'location' => 'header', + 'sentAs' => 'x-amz-request-id', + ), + ), + ), + 'GetCloudFrontOriginAccessIdentityConfigResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'CallerReference' => array( + 'type' => 'string', + 'location' => 'xml', + ), + 'Comment' => array( + 'type' => 'string', + 'location' => 'xml', + ), + 'ETag' => array( + 'type' => 'string', + 'location' => 'header', + ), + 'RequestId' => array( + 'location' => 'header', + 'sentAs' => 'x-amz-request-id', + ), + ), + ), + 'GetDistributionResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'Id' => array( + 'type' => 'string', + 'location' => 'xml', + ), + 'Status' => array( + 'type' => 'string', + 'location' => 'xml', + ), + 'LastModifiedTime' => array( + 'type' => 'string', + 'location' => 'xml', + ), + 'InProgressInvalidationBatches' => array( + 'type' => 'numeric', + 'location' => 'xml', + ), + 'DomainName' => array( + 'type' => 'string', + 'location' => 'xml', + ), + 'ActiveTrustedSigners' => array( + 'type' => 'object', + 'location' => 'xml', + 'properties' => array( + 'Enabled' => array( + 'type' => 'boolean', + ), + 'Quantity' => array( + 'type' => 'numeric', + ), + 'Items' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Signer', + 'type' => 'object', + 'sentAs' => 'Signer', + 'properties' => array( + 'AwsAccountNumber' => array( + 'type' => 'string', + ), + 'KeyPairIds' => array( + 'type' => 'object', + 'properties' => array( + 'Quantity' => array( + 'type' => 'numeric', + ), + 'Items' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'KeyPairId', + 'type' => 'string', + 'sentAs' => 'KeyPairId', + ), + ), + ), + ), + ), + ), + ), + ), + ), + 'DistributionConfig' => array( + 'type' => 'object', + 'location' => 'xml', + 'properties' => array( + 'CallerReference' => array( + 'type' => 'string', + ), + 'Aliases' => array( + 'type' => 'object', + 'properties' => array( + 'Quantity' => array( + 'type' => 'numeric', + ), + 'Items' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'CNAME', + 'type' => 'string', + 'sentAs' => 'CNAME', + ), + ), + ), + ), + 'DefaultRootObject' => array( + 'type' => 'string', + ), + 'Origins' => array( + 'type' => 'object', + 'properties' => array( + 'Quantity' => array( + 'type' => 'numeric', + ), + 'Items' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Origin', + 'type' => 'object', + 'sentAs' => 'Origin', + 'properties' => array( + 'Id' => array( + 'type' => 'string', + ), + 'DomainName' => array( + 'type' => 'string', + ), + 'OriginPath' => array( + 'type' => 'string', + ), + 'S3OriginConfig' => array( + 'type' => 'object', + 'properties' => array( + 'OriginAccessIdentity' => array( + 'type' => 'string', + ), + ), + ), + 'CustomOriginConfig' => array( + 'type' => 'object', + 'properties' => array( + 'HTTPPort' => array( + 'type' => 'numeric', + ), + 'HTTPSPort' => array( + 'type' => 'numeric', + ), + 'OriginProtocolPolicy' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + ), + ), + 'DefaultCacheBehavior' => array( + 'type' => 'object', + 'properties' => array( + 'TargetOriginId' => array( + 'type' => 'string', + ), + 'ForwardedValues' => array( + 'type' => 'object', + 'properties' => array( + 'QueryString' => array( + 'type' => 'boolean', + ), + 'Cookies' => array( + 'type' => 'object', + 'properties' => array( + 'Forward' => array( + 'type' => 'string', + ), + 'WhitelistedNames' => array( + 'type' => 'object', + 'properties' => array( + 'Quantity' => array( + 'type' => 'numeric', + ), + 'Items' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Name', + 'type' => 'string', + 'sentAs' => 'Name', + ), + ), + ), + ), + ), + ), + 'Headers' => array( + 'type' => 'object', + 'properties' => array( + 'Quantity' => array( + 'type' => 'numeric', + ), + 'Items' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Name', + 'type' => 'string', + 'sentAs' => 'Name', + ), + ), + ), + ), + ), + ), + 'TrustedSigners' => array( + 'type' => 'object', + 'properties' => array( + 'Enabled' => array( + 'type' => 'boolean', + ), + 'Quantity' => array( + 'type' => 'numeric', + ), + 'Items' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'AwsAccountNumber', + 'type' => 'string', + 'sentAs' => 'AwsAccountNumber', + ), + ), + ), + ), + 'ViewerProtocolPolicy' => array( + 'type' => 'string', + ), + 'MinTTL' => array( + 'type' => 'numeric', + ), + 'AllowedMethods' => array( + 'type' => 'object', + 'properties' => array( + 'Quantity' => array( + 'type' => 'numeric', + ), + 'Items' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Method', + 'type' => 'string', + 'sentAs' => 'Method', + ), + ), + 'CachedMethods' => array( + 'type' => 'object', + 'properties' => array( + 'Quantity' => array( + 'type' => 'numeric', + ), + 'Items' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Method', + 'type' => 'string', + 'sentAs' => 'Method', + ), + ), + ), + ), + ), + ), + 'SmoothStreaming' => array( + 'type' => 'boolean', + ), + ), + ), + 'CacheBehaviors' => array( + 'type' => 'object', + 'properties' => array( + 'Quantity' => array( + 'type' => 'numeric', + ), + 'Items' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'CacheBehavior', + 'type' => 'object', + 'sentAs' => 'CacheBehavior', + 'properties' => array( + 'PathPattern' => array( + 'type' => 'string', + ), + 'TargetOriginId' => array( + 'type' => 'string', + ), + 'ForwardedValues' => array( + 'type' => 'object', + 'properties' => array( + 'QueryString' => array( + 'type' => 'boolean', + ), + 'Cookies' => array( + 'type' => 'object', + 'properties' => array( + 'Forward' => array( + 'type' => 'string', + ), + 'WhitelistedNames' => array( + 'type' => 'object', + 'properties' => array( + 'Quantity' => array( + 'type' => 'numeric', + ), + 'Items' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Name', + 'type' => 'string', + 'sentAs' => 'Name', + ), + ), + ), + ), + ), + ), + 'Headers' => array( + 'type' => 'object', + 'properties' => array( + 'Quantity' => array( + 'type' => 'numeric', + ), + 'Items' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Name', + 'type' => 'string', + 'sentAs' => 'Name', + ), + ), + ), + ), + ), + ), + 'TrustedSigners' => array( + 'type' => 'object', + 'properties' => array( + 'Enabled' => array( + 'type' => 'boolean', + ), + 'Quantity' => array( + 'type' => 'numeric', + ), + 'Items' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'AwsAccountNumber', + 'type' => 'string', + 'sentAs' => 'AwsAccountNumber', + ), + ), + ), + ), + 'ViewerProtocolPolicy' => array( + 'type' => 'string', + ), + 'MinTTL' => array( + 'type' => 'numeric', + ), + 'AllowedMethods' => array( + 'type' => 'object', + 'properties' => array( + 'Quantity' => array( + 'type' => 'numeric', + ), + 'Items' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Method', + 'type' => 'string', + 'sentAs' => 'Method', + ), + ), + 'CachedMethods' => array( + 'type' => 'object', + 'properties' => array( + 'Quantity' => array( + 'type' => 'numeric', + ), + 'Items' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Method', + 'type' => 'string', + 'sentAs' => 'Method', + ), + ), + ), + ), + ), + ), + 'SmoothStreaming' => array( + 'type' => 'boolean', + ), + ), + ), + ), + ), + ), + 'CustomErrorResponses' => array( + 'type' => 'object', + 'properties' => array( + 'Quantity' => array( + 'type' => 'numeric', + ), + 'Items' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'CustomErrorResponse', + 'type' => 'object', + 'sentAs' => 'CustomErrorResponse', + 'properties' => array( + 'ErrorCode' => array( + 'type' => 'numeric', + ), + 'ResponsePagePath' => array( + 'type' => 'string', + ), + 'ResponseCode' => array( + 'type' => 'string', + ), + 'ErrorCachingMinTTL' => array( + 'type' => 'numeric', + ), + ), + ), + ), + ), + ), + 'Comment' => array( + 'type' => 'string', + ), + 'Logging' => array( + 'type' => 'object', + 'properties' => array( + 'Enabled' => array( + 'type' => 'boolean', + ), + 'IncludeCookies' => array( + 'type' => 'boolean', + ), + 'Bucket' => array( + 'type' => 'string', + ), + 'Prefix' => array( + 'type' => 'string', + ), + ), + ), + 'PriceClass' => array( + 'type' => 'string', + ), + 'Enabled' => array( + 'type' => 'boolean', + ), + 'ViewerCertificate' => array( + 'type' => 'object', + 'properties' => array( + 'IAMCertificateId' => array( + 'type' => 'string', + ), + 'CloudFrontDefaultCertificate' => array( + 'type' => 'boolean', + ), + 'SSLSupportMethod' => array( + 'type' => 'string', + ), + 'MinimumProtocolVersion' => array( + 'type' => 'string', + ), + ), + ), + 'Restrictions' => array( + 'type' => 'object', + 'properties' => array( + 'GeoRestriction' => array( + 'type' => 'object', + 'properties' => array( + 'RestrictionType' => array( + 'type' => 'string', + ), + 'Quantity' => array( + 'type' => 'numeric', + ), + 'Items' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Location', + 'type' => 'string', + 'sentAs' => 'Location', + ), + ), + ), + ), + ), + ), + ), + ), + 'ETag' => array( + 'type' => 'string', + 'location' => 'header', + ), + 'RequestId' => array( + 'location' => 'header', + 'sentAs' => 'x-amz-request-id', + ), + ), + ), + 'GetDistributionConfigResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'CallerReference' => array( + 'type' => 'string', + 'location' => 'xml', + ), + 'Aliases' => array( + 'type' => 'object', + 'location' => 'xml', + 'properties' => array( + 'Quantity' => array( + 'type' => 'numeric', + ), + 'Items' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'CNAME', + 'type' => 'string', + 'sentAs' => 'CNAME', + ), + ), + ), + ), + 'DefaultRootObject' => array( + 'type' => 'string', + 'location' => 'xml', + ), + 'Origins' => array( + 'type' => 'object', + 'location' => 'xml', + 'properties' => array( + 'Quantity' => array( + 'type' => 'numeric', + ), + 'Items' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Origin', + 'type' => 'object', + 'sentAs' => 'Origin', + 'properties' => array( + 'Id' => array( + 'type' => 'string', + ), + 'DomainName' => array( + 'type' => 'string', + ), + 'OriginPath' => array( + 'type' => 'string', + ), + 'S3OriginConfig' => array( + 'type' => 'object', + 'properties' => array( + 'OriginAccessIdentity' => array( + 'type' => 'string', + ), + ), + ), + 'CustomOriginConfig' => array( + 'type' => 'object', + 'properties' => array( + 'HTTPPort' => array( + 'type' => 'numeric', + ), + 'HTTPSPort' => array( + 'type' => 'numeric', + ), + 'OriginProtocolPolicy' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + ), + ), + 'DefaultCacheBehavior' => array( + 'type' => 'object', + 'location' => 'xml', + 'properties' => array( + 'TargetOriginId' => array( + 'type' => 'string', + ), + 'ForwardedValues' => array( + 'type' => 'object', + 'properties' => array( + 'QueryString' => array( + 'type' => 'boolean', + ), + 'Cookies' => array( + 'type' => 'object', + 'properties' => array( + 'Forward' => array( + 'type' => 'string', + ), + 'WhitelistedNames' => array( + 'type' => 'object', + 'properties' => array( + 'Quantity' => array( + 'type' => 'numeric', + ), + 'Items' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Name', + 'type' => 'string', + 'sentAs' => 'Name', + ), + ), + ), + ), + ), + ), + 'Headers' => array( + 'type' => 'object', + 'properties' => array( + 'Quantity' => array( + 'type' => 'numeric', + ), + 'Items' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Name', + 'type' => 'string', + 'sentAs' => 'Name', + ), + ), + ), + ), + ), + ), + 'TrustedSigners' => array( + 'type' => 'object', + 'properties' => array( + 'Enabled' => array( + 'type' => 'boolean', + ), + 'Quantity' => array( + 'type' => 'numeric', + ), + 'Items' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'AwsAccountNumber', + 'type' => 'string', + 'sentAs' => 'AwsAccountNumber', + ), + ), + ), + ), + 'ViewerProtocolPolicy' => array( + 'type' => 'string', + ), + 'MinTTL' => array( + 'type' => 'numeric', + ), + 'AllowedMethods' => array( + 'type' => 'object', + 'properties' => array( + 'Quantity' => array( + 'type' => 'numeric', + ), + 'Items' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Method', + 'type' => 'string', + 'sentAs' => 'Method', + ), + ), + 'CachedMethods' => array( + 'type' => 'object', + 'properties' => array( + 'Quantity' => array( + 'type' => 'numeric', + ), + 'Items' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Method', + 'type' => 'string', + 'sentAs' => 'Method', + ), + ), + ), + ), + ), + ), + 'SmoothStreaming' => array( + 'type' => 'boolean', + ), + ), + ), + 'CacheBehaviors' => array( + 'type' => 'object', + 'location' => 'xml', + 'properties' => array( + 'Quantity' => array( + 'type' => 'numeric', + ), + 'Items' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'CacheBehavior', + 'type' => 'object', + 'sentAs' => 'CacheBehavior', + 'properties' => array( + 'PathPattern' => array( + 'type' => 'string', + ), + 'TargetOriginId' => array( + 'type' => 'string', + ), + 'ForwardedValues' => array( + 'type' => 'object', + 'properties' => array( + 'QueryString' => array( + 'type' => 'boolean', + ), + 'Cookies' => array( + 'type' => 'object', + 'properties' => array( + 'Forward' => array( + 'type' => 'string', + ), + 'WhitelistedNames' => array( + 'type' => 'object', + 'properties' => array( + 'Quantity' => array( + 'type' => 'numeric', + ), + 'Items' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Name', + 'type' => 'string', + 'sentAs' => 'Name', + ), + ), + ), + ), + ), + ), + 'Headers' => array( + 'type' => 'object', + 'properties' => array( + 'Quantity' => array( + 'type' => 'numeric', + ), + 'Items' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Name', + 'type' => 'string', + 'sentAs' => 'Name', + ), + ), + ), + ), + ), + ), + 'TrustedSigners' => array( + 'type' => 'object', + 'properties' => array( + 'Enabled' => array( + 'type' => 'boolean', + ), + 'Quantity' => array( + 'type' => 'numeric', + ), + 'Items' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'AwsAccountNumber', + 'type' => 'string', + 'sentAs' => 'AwsAccountNumber', + ), + ), + ), + ), + 'ViewerProtocolPolicy' => array( + 'type' => 'string', + ), + 'MinTTL' => array( + 'type' => 'numeric', + ), + 'AllowedMethods' => array( + 'type' => 'object', + 'properties' => array( + 'Quantity' => array( + 'type' => 'numeric', + ), + 'Items' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Method', + 'type' => 'string', + 'sentAs' => 'Method', + ), + ), + 'CachedMethods' => array( + 'type' => 'object', + 'properties' => array( + 'Quantity' => array( + 'type' => 'numeric', + ), + 'Items' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Method', + 'type' => 'string', + 'sentAs' => 'Method', + ), + ), + ), + ), + ), + ), + 'SmoothStreaming' => array( + 'type' => 'boolean', + ), + ), + ), + ), + ), + ), + 'CustomErrorResponses' => array( + 'type' => 'object', + 'location' => 'xml', + 'properties' => array( + 'Quantity' => array( + 'type' => 'numeric', + ), + 'Items' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'CustomErrorResponse', + 'type' => 'object', + 'sentAs' => 'CustomErrorResponse', + 'properties' => array( + 'ErrorCode' => array( + 'type' => 'numeric', + ), + 'ResponsePagePath' => array( + 'type' => 'string', + ), + 'ResponseCode' => array( + 'type' => 'string', + ), + 'ErrorCachingMinTTL' => array( + 'type' => 'numeric', + ), + ), + ), + ), + ), + ), + 'Comment' => array( + 'type' => 'string', + 'location' => 'xml', + ), + 'Logging' => array( + 'type' => 'object', + 'location' => 'xml', + 'properties' => array( + 'Enabled' => array( + 'type' => 'boolean', + ), + 'IncludeCookies' => array( + 'type' => 'boolean', + ), + 'Bucket' => array( + 'type' => 'string', + ), + 'Prefix' => array( + 'type' => 'string', + ), + ), + ), + 'PriceClass' => array( + 'type' => 'string', + 'location' => 'xml', + ), + 'Enabled' => array( + 'type' => 'boolean', + 'location' => 'xml', + ), + 'ViewerCertificate' => array( + 'type' => 'object', + 'location' => 'xml', + 'properties' => array( + 'IAMCertificateId' => array( + 'type' => 'string', + ), + 'CloudFrontDefaultCertificate' => array( + 'type' => 'boolean', + ), + 'SSLSupportMethod' => array( + 'type' => 'string', + ), + 'MinimumProtocolVersion' => array( + 'type' => 'string', + ), + ), + ), + 'Restrictions' => array( + 'type' => 'object', + 'location' => 'xml', + 'properties' => array( + 'GeoRestriction' => array( + 'type' => 'object', + 'properties' => array( + 'RestrictionType' => array( + 'type' => 'string', + ), + 'Quantity' => array( + 'type' => 'numeric', + ), + 'Items' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Location', + 'type' => 'string', + 'sentAs' => 'Location', + ), + ), + ), + ), + ), + ), + 'ETag' => array( + 'type' => 'string', + 'location' => 'header', + ), + 'RequestId' => array( + 'location' => 'header', + 'sentAs' => 'x-amz-request-id', + ), + ), + ), + 'GetInvalidationResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'Id' => array( + 'type' => 'string', + 'location' => 'xml', + ), + 'Status' => array( + 'type' => 'string', + 'location' => 'xml', + ), + 'CreateTime' => array( + 'type' => 'string', + 'location' => 'xml', + ), + 'InvalidationBatch' => array( + 'type' => 'object', + 'location' => 'xml', + 'properties' => array( + 'Paths' => array( + 'type' => 'object', + 'properties' => array( + 'Quantity' => array( + 'type' => 'numeric', + ), + 'Items' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Path', + 'type' => 'string', + 'sentAs' => 'Path', + ), + ), + ), + ), + 'CallerReference' => array( + 'type' => 'string', + ), + ), + ), + 'RequestId' => array( + 'location' => 'header', + 'sentAs' => 'x-amz-request-id', + ), + ), + ), + 'GetStreamingDistributionResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'Id' => array( + 'type' => 'string', + 'location' => 'xml', + ), + 'Status' => array( + 'type' => 'string', + 'location' => 'xml', + ), + 'LastModifiedTime' => array( + 'type' => 'string', + 'location' => 'xml', + ), + 'DomainName' => array( + 'type' => 'string', + 'location' => 'xml', + ), + 'ActiveTrustedSigners' => array( + 'type' => 'object', + 'location' => 'xml', + 'properties' => array( + 'Enabled' => array( + 'type' => 'boolean', + ), + 'Quantity' => array( + 'type' => 'numeric', + ), + 'Items' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Signer', + 'type' => 'object', + 'sentAs' => 'Signer', + 'properties' => array( + 'AwsAccountNumber' => array( + 'type' => 'string', + ), + 'KeyPairIds' => array( + 'type' => 'object', + 'properties' => array( + 'Quantity' => array( + 'type' => 'numeric', + ), + 'Items' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'KeyPairId', + 'type' => 'string', + 'sentAs' => 'KeyPairId', + ), + ), + ), + ), + ), + ), + ), + ), + ), + 'StreamingDistributionConfig' => array( + 'type' => 'object', + 'location' => 'xml', + 'properties' => array( + 'CallerReference' => array( + 'type' => 'string', + ), + 'S3Origin' => array( + 'type' => 'object', + 'properties' => array( + 'DomainName' => array( + 'type' => 'string', + ), + 'OriginAccessIdentity' => array( + 'type' => 'string', + ), + ), + ), + 'Aliases' => array( + 'type' => 'object', + 'properties' => array( + 'Quantity' => array( + 'type' => 'numeric', + ), + 'Items' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'CNAME', + 'type' => 'string', + 'sentAs' => 'CNAME', + ), + ), + ), + ), + 'Comment' => array( + 'type' => 'string', + ), + 'Logging' => array( + 'type' => 'object', + 'properties' => array( + 'Enabled' => array( + 'type' => 'boolean', + ), + 'Bucket' => array( + 'type' => 'string', + ), + 'Prefix' => array( + 'type' => 'string', + ), + ), + ), + 'TrustedSigners' => array( + 'type' => 'object', + 'properties' => array( + 'Enabled' => array( + 'type' => 'boolean', + ), + 'Quantity' => array( + 'type' => 'numeric', + ), + 'Items' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'AwsAccountNumber', + 'type' => 'string', + 'sentAs' => 'AwsAccountNumber', + ), + ), + ), + ), + 'PriceClass' => array( + 'type' => 'string', + ), + 'Enabled' => array( + 'type' => 'boolean', + ), + ), + ), + 'ETag' => array( + 'type' => 'string', + 'location' => 'header', + ), + 'RequestId' => array( + 'location' => 'header', + 'sentAs' => 'x-amz-request-id', + ), + ), + ), + 'GetStreamingDistributionConfigResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'CallerReference' => array( + 'type' => 'string', + 'location' => 'xml', + ), + 'S3Origin' => array( + 'type' => 'object', + 'location' => 'xml', + 'properties' => array( + 'DomainName' => array( + 'type' => 'string', + ), + 'OriginAccessIdentity' => array( + 'type' => 'string', + ), + ), + ), + 'Aliases' => array( + 'type' => 'object', + 'location' => 'xml', + 'properties' => array( + 'Quantity' => array( + 'type' => 'numeric', + ), + 'Items' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'CNAME', + 'type' => 'string', + 'sentAs' => 'CNAME', + ), + ), + ), + ), + 'Comment' => array( + 'type' => 'string', + 'location' => 'xml', + ), + 'Logging' => array( + 'type' => 'object', + 'location' => 'xml', + 'properties' => array( + 'Enabled' => array( + 'type' => 'boolean', + ), + 'Bucket' => array( + 'type' => 'string', + ), + 'Prefix' => array( + 'type' => 'string', + ), + ), + ), + 'TrustedSigners' => array( + 'type' => 'object', + 'location' => 'xml', + 'properties' => array( + 'Enabled' => array( + 'type' => 'boolean', + ), + 'Quantity' => array( + 'type' => 'numeric', + ), + 'Items' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'AwsAccountNumber', + 'type' => 'string', + 'sentAs' => 'AwsAccountNumber', + ), + ), + ), + ), + 'PriceClass' => array( + 'type' => 'string', + 'location' => 'xml', + ), + 'Enabled' => array( + 'type' => 'boolean', + 'location' => 'xml', + ), + 'ETag' => array( + 'type' => 'string', + 'location' => 'header', + ), + 'RequestId' => array( + 'location' => 'header', + 'sentAs' => 'x-amz-request-id', + ), + ), + ), + 'ListCloudFrontOriginAccessIdentitiesResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'Marker' => array( + 'type' => 'string', + 'location' => 'xml', + ), + 'NextMarker' => array( + 'type' => 'string', + 'location' => 'xml', + ), + 'MaxItems' => array( + 'type' => 'numeric', + 'location' => 'xml', + ), + 'IsTruncated' => array( + 'type' => 'boolean', + 'location' => 'xml', + ), + 'Quantity' => array( + 'type' => 'numeric', + 'location' => 'xml', + ), + 'Items' => array( + 'type' => 'array', + 'location' => 'xml', + 'items' => array( + 'name' => 'CloudFrontOriginAccessIdentitySummary', + 'type' => 'object', + 'sentAs' => 'CloudFrontOriginAccessIdentitySummary', + 'properties' => array( + 'Id' => array( + 'type' => 'string', + ), + 'S3CanonicalUserId' => array( + 'type' => 'string', + ), + 'Comment' => array( + 'type' => 'string', + ), + ), + ), + ), + 'RequestId' => array( + 'location' => 'header', + 'sentAs' => 'x-amz-request-id', + ), + ), + ), + 'ListDistributionsResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'Marker' => array( + 'type' => 'string', + 'location' => 'xml', + ), + 'NextMarker' => array( + 'type' => 'string', + 'location' => 'xml', + ), + 'MaxItems' => array( + 'type' => 'numeric', + 'location' => 'xml', + ), + 'IsTruncated' => array( + 'type' => 'boolean', + 'location' => 'xml', + ), + 'Quantity' => array( + 'type' => 'numeric', + 'location' => 'xml', + ), + 'Items' => array( + 'type' => 'array', + 'location' => 'xml', + 'items' => array( + 'name' => 'DistributionSummary', + 'type' => 'object', + 'sentAs' => 'DistributionSummary', + 'properties' => array( + 'Id' => array( + 'type' => 'string', + ), + 'Status' => array( + 'type' => 'string', + ), + 'LastModifiedTime' => array( + 'type' => 'string', + ), + 'DomainName' => array( + 'type' => 'string', + ), + 'Aliases' => array( + 'type' => 'object', + 'properties' => array( + 'Quantity' => array( + 'type' => 'numeric', + ), + 'Items' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'CNAME', + 'type' => 'string', + 'sentAs' => 'CNAME', + ), + ), + ), + ), + 'Origins' => array( + 'type' => 'object', + 'properties' => array( + 'Quantity' => array( + 'type' => 'numeric', + ), + 'Items' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Origin', + 'type' => 'object', + 'sentAs' => 'Origin', + 'properties' => array( + 'Id' => array( + 'type' => 'string', + ), + 'DomainName' => array( + 'type' => 'string', + ), + 'OriginPath' => array( + 'type' => 'string', + ), + 'S3OriginConfig' => array( + 'type' => 'object', + 'properties' => array( + 'OriginAccessIdentity' => array( + 'type' => 'string', + ), + ), + ), + 'CustomOriginConfig' => array( + 'type' => 'object', + 'properties' => array( + 'HTTPPort' => array( + 'type' => 'numeric', + ), + 'HTTPSPort' => array( + 'type' => 'numeric', + ), + 'OriginProtocolPolicy' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + ), + ), + 'DefaultCacheBehavior' => array( + 'type' => 'object', + 'properties' => array( + 'TargetOriginId' => array( + 'type' => 'string', + ), + 'ForwardedValues' => array( + 'type' => 'object', + 'properties' => array( + 'QueryString' => array( + 'type' => 'boolean', + ), + 'Cookies' => array( + 'type' => 'object', + 'properties' => array( + 'Forward' => array( + 'type' => 'string', + ), + 'WhitelistedNames' => array( + 'type' => 'object', + 'properties' => array( + 'Quantity' => array( + 'type' => 'numeric', + ), + 'Items' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Name', + 'type' => 'string', + 'sentAs' => 'Name', + ), + ), + ), + ), + ), + ), + 'Headers' => array( + 'type' => 'object', + 'properties' => array( + 'Quantity' => array( + 'type' => 'numeric', + ), + 'Items' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Name', + 'type' => 'string', + 'sentAs' => 'Name', + ), + ), + ), + ), + ), + ), + 'TrustedSigners' => array( + 'type' => 'object', + 'properties' => array( + 'Enabled' => array( + 'type' => 'boolean', + ), + 'Quantity' => array( + 'type' => 'numeric', + ), + 'Items' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'AwsAccountNumber', + 'type' => 'string', + 'sentAs' => 'AwsAccountNumber', + ), + ), + ), + ), + 'ViewerProtocolPolicy' => array( + 'type' => 'string', + ), + 'MinTTL' => array( + 'type' => 'numeric', + ), + 'AllowedMethods' => array( + 'type' => 'object', + 'properties' => array( + 'Quantity' => array( + 'type' => 'numeric', + ), + 'Items' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Method', + 'type' => 'string', + 'sentAs' => 'Method', + ), + ), + 'CachedMethods' => array( + 'type' => 'object', + 'properties' => array( + 'Quantity' => array( + 'type' => 'numeric', + ), + 'Items' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Method', + 'type' => 'string', + 'sentAs' => 'Method', + ), + ), + ), + ), + ), + ), + 'SmoothStreaming' => array( + 'type' => 'boolean', + ), + ), + ), + 'CacheBehaviors' => array( + 'type' => 'object', + 'properties' => array( + 'Quantity' => array( + 'type' => 'numeric', + ), + 'Items' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'CacheBehavior', + 'type' => 'object', + 'sentAs' => 'CacheBehavior', + 'properties' => array( + 'PathPattern' => array( + 'type' => 'string', + ), + 'TargetOriginId' => array( + 'type' => 'string', + ), + 'ForwardedValues' => array( + 'type' => 'object', + 'properties' => array( + 'QueryString' => array( + 'type' => 'boolean', + ), + 'Cookies' => array( + 'type' => 'object', + 'properties' => array( + 'Forward' => array( + 'type' => 'string', + ), + 'WhitelistedNames' => array( + 'type' => 'object', + 'properties' => array( + 'Quantity' => array( + 'type' => 'numeric', + ), + 'Items' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Name', + 'type' => 'string', + 'sentAs' => 'Name', + ), + ), + ), + ), + ), + ), + 'Headers' => array( + 'type' => 'object', + 'properties' => array( + 'Quantity' => array( + 'type' => 'numeric', + ), + 'Items' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Name', + 'type' => 'string', + 'sentAs' => 'Name', + ), + ), + ), + ), + ), + ), + 'TrustedSigners' => array( + 'type' => 'object', + 'properties' => array( + 'Enabled' => array( + 'type' => 'boolean', + ), + 'Quantity' => array( + 'type' => 'numeric', + ), + 'Items' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'AwsAccountNumber', + 'type' => 'string', + 'sentAs' => 'AwsAccountNumber', + ), + ), + ), + ), + 'ViewerProtocolPolicy' => array( + 'type' => 'string', + ), + 'MinTTL' => array( + 'type' => 'numeric', + ), + 'AllowedMethods' => array( + 'type' => 'object', + 'properties' => array( + 'Quantity' => array( + 'type' => 'numeric', + ), + 'Items' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Method', + 'type' => 'string', + 'sentAs' => 'Method', + ), + ), + 'CachedMethods' => array( + 'type' => 'object', + 'properties' => array( + 'Quantity' => array( + 'type' => 'numeric', + ), + 'Items' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Method', + 'type' => 'string', + 'sentAs' => 'Method', + ), + ), + ), + ), + ), + ), + 'SmoothStreaming' => array( + 'type' => 'boolean', + ), + ), + ), + ), + ), + ), + 'CustomErrorResponses' => array( + 'type' => 'object', + 'properties' => array( + 'Quantity' => array( + 'type' => 'numeric', + ), + 'Items' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'CustomErrorResponse', + 'type' => 'object', + 'sentAs' => 'CustomErrorResponse', + 'properties' => array( + 'ErrorCode' => array( + 'type' => 'numeric', + ), + 'ResponsePagePath' => array( + 'type' => 'string', + ), + 'ResponseCode' => array( + 'type' => 'string', + ), + 'ErrorCachingMinTTL' => array( + 'type' => 'numeric', + ), + ), + ), + ), + ), + ), + 'Comment' => array( + 'type' => 'string', + ), + 'PriceClass' => array( + 'type' => 'string', + ), + 'Enabled' => array( + 'type' => 'boolean', + ), + 'ViewerCertificate' => array( + 'type' => 'object', + 'properties' => array( + 'IAMCertificateId' => array( + 'type' => 'string', + ), + 'CloudFrontDefaultCertificate' => array( + 'type' => 'boolean', + ), + 'SSLSupportMethod' => array( + 'type' => 'string', + ), + 'MinimumProtocolVersion' => array( + 'type' => 'string', + ), + ), + ), + 'Restrictions' => array( + 'type' => 'object', + 'properties' => array( + 'GeoRestriction' => array( + 'type' => 'object', + 'properties' => array( + 'RestrictionType' => array( + 'type' => 'string', + ), + 'Quantity' => array( + 'type' => 'numeric', + ), + 'Items' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Location', + 'type' => 'string', + 'sentAs' => 'Location', + ), + ), + ), + ), + ), + ), + ), + ), + ), + 'RequestId' => array( + 'location' => 'header', + 'sentAs' => 'x-amz-request-id', + ), + ), + ), + 'ListInvalidationsResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'Marker' => array( + 'type' => 'string', + 'location' => 'xml', + ), + 'NextMarker' => array( + 'type' => 'string', + 'location' => 'xml', + ), + 'MaxItems' => array( + 'type' => 'numeric', + 'location' => 'xml', + ), + 'IsTruncated' => array( + 'type' => 'boolean', + 'location' => 'xml', + ), + 'Quantity' => array( + 'type' => 'numeric', + 'location' => 'xml', + ), + 'Items' => array( + 'type' => 'array', + 'location' => 'xml', + 'items' => array( + 'name' => 'InvalidationSummary', + 'type' => 'object', + 'sentAs' => 'InvalidationSummary', + 'properties' => array( + 'Id' => array( + 'type' => 'string', + ), + 'CreateTime' => array( + 'type' => 'string', + ), + 'Status' => array( + 'type' => 'string', + ), + ), + ), + ), + 'RequestId' => array( + 'location' => 'header', + 'sentAs' => 'x-amz-request-id', + ), + ), + ), + 'ListStreamingDistributionsResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'Marker' => array( + 'type' => 'string', + 'location' => 'xml', + ), + 'NextMarker' => array( + 'type' => 'string', + 'location' => 'xml', + ), + 'MaxItems' => array( + 'type' => 'numeric', + 'location' => 'xml', + ), + 'IsTruncated' => array( + 'type' => 'boolean', + 'location' => 'xml', + ), + 'Quantity' => array( + 'type' => 'numeric', + 'location' => 'xml', + ), + 'Items' => array( + 'type' => 'array', + 'location' => 'xml', + 'items' => array( + 'name' => 'StreamingDistributionSummary', + 'type' => 'object', + 'sentAs' => 'StreamingDistributionSummary', + 'properties' => array( + 'Id' => array( + 'type' => 'string', + ), + 'Status' => array( + 'type' => 'string', + ), + 'LastModifiedTime' => array( + 'type' => 'string', + ), + 'DomainName' => array( + 'type' => 'string', + ), + 'S3Origin' => array( + 'type' => 'object', + 'properties' => array( + 'DomainName' => array( + 'type' => 'string', + ), + 'OriginAccessIdentity' => array( + 'type' => 'string', + ), + ), + ), + 'Aliases' => array( + 'type' => 'object', + 'properties' => array( + 'Quantity' => array( + 'type' => 'numeric', + ), + 'Items' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'CNAME', + 'type' => 'string', + 'sentAs' => 'CNAME', + ), + ), + ), + ), + 'TrustedSigners' => array( + 'type' => 'object', + 'properties' => array( + 'Enabled' => array( + 'type' => 'boolean', + ), + 'Quantity' => array( + 'type' => 'numeric', + ), + 'Items' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'AwsAccountNumber', + 'type' => 'string', + 'sentAs' => 'AwsAccountNumber', + ), + ), + ), + ), + 'Comment' => array( + 'type' => 'string', + ), + 'PriceClass' => array( + 'type' => 'string', + ), + 'Enabled' => array( + 'type' => 'boolean', + ), + ), + ), + ), + 'RequestId' => array( + 'location' => 'header', + 'sentAs' => 'x-amz-request-id', + ), + ), + ), + 'UpdateCloudFrontOriginAccessIdentityResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'Id' => array( + 'type' => 'string', + 'location' => 'xml', + ), + 'S3CanonicalUserId' => array( + 'type' => 'string', + 'location' => 'xml', + ), + 'CloudFrontOriginAccessIdentityConfig' => array( + 'type' => 'object', + 'location' => 'xml', + 'properties' => array( + 'CallerReference' => array( + 'type' => 'string', + ), + 'Comment' => array( + 'type' => 'string', + ), + ), + ), + 'ETag' => array( + 'type' => 'string', + 'location' => 'header', + ), + 'RequestId' => array( + 'location' => 'header', + 'sentAs' => 'x-amz-request-id', + ), + ), + ), + 'UpdateDistributionResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'Id' => array( + 'type' => 'string', + 'location' => 'xml', + ), + 'Status' => array( + 'type' => 'string', + 'location' => 'xml', + ), + 'LastModifiedTime' => array( + 'type' => 'string', + 'location' => 'xml', + ), + 'InProgressInvalidationBatches' => array( + 'type' => 'numeric', + 'location' => 'xml', + ), + 'DomainName' => array( + 'type' => 'string', + 'location' => 'xml', + ), + 'ActiveTrustedSigners' => array( + 'type' => 'object', + 'location' => 'xml', + 'properties' => array( + 'Enabled' => array( + 'type' => 'boolean', + ), + 'Quantity' => array( + 'type' => 'numeric', + ), + 'Items' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Signer', + 'type' => 'object', + 'sentAs' => 'Signer', + 'properties' => array( + 'AwsAccountNumber' => array( + 'type' => 'string', + ), + 'KeyPairIds' => array( + 'type' => 'object', + 'properties' => array( + 'Quantity' => array( + 'type' => 'numeric', + ), + 'Items' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'KeyPairId', + 'type' => 'string', + 'sentAs' => 'KeyPairId', + ), + ), + ), + ), + ), + ), + ), + ), + ), + 'DistributionConfig' => array( + 'type' => 'object', + 'location' => 'xml', + 'properties' => array( + 'CallerReference' => array( + 'type' => 'string', + ), + 'Aliases' => array( + 'type' => 'object', + 'properties' => array( + 'Quantity' => array( + 'type' => 'numeric', + ), + 'Items' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'CNAME', + 'type' => 'string', + 'sentAs' => 'CNAME', + ), + ), + ), + ), + 'DefaultRootObject' => array( + 'type' => 'string', + ), + 'Origins' => array( + 'type' => 'object', + 'properties' => array( + 'Quantity' => array( + 'type' => 'numeric', + ), + 'Items' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Origin', + 'type' => 'object', + 'sentAs' => 'Origin', + 'properties' => array( + 'Id' => array( + 'type' => 'string', + ), + 'DomainName' => array( + 'type' => 'string', + ), + 'OriginPath' => array( + 'type' => 'string', + ), + 'S3OriginConfig' => array( + 'type' => 'object', + 'properties' => array( + 'OriginAccessIdentity' => array( + 'type' => 'string', + ), + ), + ), + 'CustomOriginConfig' => array( + 'type' => 'object', + 'properties' => array( + 'HTTPPort' => array( + 'type' => 'numeric', + ), + 'HTTPSPort' => array( + 'type' => 'numeric', + ), + 'OriginProtocolPolicy' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + ), + ), + 'DefaultCacheBehavior' => array( + 'type' => 'object', + 'properties' => array( + 'TargetOriginId' => array( + 'type' => 'string', + ), + 'ForwardedValues' => array( + 'type' => 'object', + 'properties' => array( + 'QueryString' => array( + 'type' => 'boolean', + ), + 'Cookies' => array( + 'type' => 'object', + 'properties' => array( + 'Forward' => array( + 'type' => 'string', + ), + 'WhitelistedNames' => array( + 'type' => 'object', + 'properties' => array( + 'Quantity' => array( + 'type' => 'numeric', + ), + 'Items' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Name', + 'type' => 'string', + 'sentAs' => 'Name', + ), + ), + ), + ), + ), + ), + 'Headers' => array( + 'type' => 'object', + 'properties' => array( + 'Quantity' => array( + 'type' => 'numeric', + ), + 'Items' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Name', + 'type' => 'string', + 'sentAs' => 'Name', + ), + ), + ), + ), + ), + ), + 'TrustedSigners' => array( + 'type' => 'object', + 'properties' => array( + 'Enabled' => array( + 'type' => 'boolean', + ), + 'Quantity' => array( + 'type' => 'numeric', + ), + 'Items' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'AwsAccountNumber', + 'type' => 'string', + 'sentAs' => 'AwsAccountNumber', + ), + ), + ), + ), + 'ViewerProtocolPolicy' => array( + 'type' => 'string', + ), + 'MinTTL' => array( + 'type' => 'numeric', + ), + 'AllowedMethods' => array( + 'type' => 'object', + 'properties' => array( + 'Quantity' => array( + 'type' => 'numeric', + ), + 'Items' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Method', + 'type' => 'string', + 'sentAs' => 'Method', + ), + ), + 'CachedMethods' => array( + 'type' => 'object', + 'properties' => array( + 'Quantity' => array( + 'type' => 'numeric', + ), + 'Items' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Method', + 'type' => 'string', + 'sentAs' => 'Method', + ), + ), + ), + ), + ), + ), + 'SmoothStreaming' => array( + 'type' => 'boolean', + ), + ), + ), + 'CacheBehaviors' => array( + 'type' => 'object', + 'properties' => array( + 'Quantity' => array( + 'type' => 'numeric', + ), + 'Items' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'CacheBehavior', + 'type' => 'object', + 'sentAs' => 'CacheBehavior', + 'properties' => array( + 'PathPattern' => array( + 'type' => 'string', + ), + 'TargetOriginId' => array( + 'type' => 'string', + ), + 'ForwardedValues' => array( + 'type' => 'object', + 'properties' => array( + 'QueryString' => array( + 'type' => 'boolean', + ), + 'Cookies' => array( + 'type' => 'object', + 'properties' => array( + 'Forward' => array( + 'type' => 'string', + ), + 'WhitelistedNames' => array( + 'type' => 'object', + 'properties' => array( + 'Quantity' => array( + 'type' => 'numeric', + ), + 'Items' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Name', + 'type' => 'string', + 'sentAs' => 'Name', + ), + ), + ), + ), + ), + ), + 'Headers' => array( + 'type' => 'object', + 'properties' => array( + 'Quantity' => array( + 'type' => 'numeric', + ), + 'Items' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Name', + 'type' => 'string', + 'sentAs' => 'Name', + ), + ), + ), + ), + ), + ), + 'TrustedSigners' => array( + 'type' => 'object', + 'properties' => array( + 'Enabled' => array( + 'type' => 'boolean', + ), + 'Quantity' => array( + 'type' => 'numeric', + ), + 'Items' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'AwsAccountNumber', + 'type' => 'string', + 'sentAs' => 'AwsAccountNumber', + ), + ), + ), + ), + 'ViewerProtocolPolicy' => array( + 'type' => 'string', + ), + 'MinTTL' => array( + 'type' => 'numeric', + ), + 'AllowedMethods' => array( + 'type' => 'object', + 'properties' => array( + 'Quantity' => array( + 'type' => 'numeric', + ), + 'Items' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Method', + 'type' => 'string', + 'sentAs' => 'Method', + ), + ), + 'CachedMethods' => array( + 'type' => 'object', + 'properties' => array( + 'Quantity' => array( + 'type' => 'numeric', + ), + 'Items' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Method', + 'type' => 'string', + 'sentAs' => 'Method', + ), + ), + ), + ), + ), + ), + 'SmoothStreaming' => array( + 'type' => 'boolean', + ), + ), + ), + ), + ), + ), + 'CustomErrorResponses' => array( + 'type' => 'object', + 'properties' => array( + 'Quantity' => array( + 'type' => 'numeric', + ), + 'Items' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'CustomErrorResponse', + 'type' => 'object', + 'sentAs' => 'CustomErrorResponse', + 'properties' => array( + 'ErrorCode' => array( + 'type' => 'numeric', + ), + 'ResponsePagePath' => array( + 'type' => 'string', + ), + 'ResponseCode' => array( + 'type' => 'string', + ), + 'ErrorCachingMinTTL' => array( + 'type' => 'numeric', + ), + ), + ), + ), + ), + ), + 'Comment' => array( + 'type' => 'string', + ), + 'Logging' => array( + 'type' => 'object', + 'properties' => array( + 'Enabled' => array( + 'type' => 'boolean', + ), + 'IncludeCookies' => array( + 'type' => 'boolean', + ), + 'Bucket' => array( + 'type' => 'string', + ), + 'Prefix' => array( + 'type' => 'string', + ), + ), + ), + 'PriceClass' => array( + 'type' => 'string', + ), + 'Enabled' => array( + 'type' => 'boolean', + ), + 'ViewerCertificate' => array( + 'type' => 'object', + 'properties' => array( + 'IAMCertificateId' => array( + 'type' => 'string', + ), + 'CloudFrontDefaultCertificate' => array( + 'type' => 'boolean', + ), + 'SSLSupportMethod' => array( + 'type' => 'string', + ), + 'MinimumProtocolVersion' => array( + 'type' => 'string', + ), + ), + ), + 'Restrictions' => array( + 'type' => 'object', + 'properties' => array( + 'GeoRestriction' => array( + 'type' => 'object', + 'properties' => array( + 'RestrictionType' => array( + 'type' => 'string', + ), + 'Quantity' => array( + 'type' => 'numeric', + ), + 'Items' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Location', + 'type' => 'string', + 'sentAs' => 'Location', + ), + ), + ), + ), + ), + ), + ), + ), + 'ETag' => array( + 'type' => 'string', + 'location' => 'header', + ), + 'RequestId' => array( + 'location' => 'header', + 'sentAs' => 'x-amz-request-id', + ), + ), + ), + 'UpdateStreamingDistributionResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'Id' => array( + 'type' => 'string', + 'location' => 'xml', + ), + 'Status' => array( + 'type' => 'string', + 'location' => 'xml', + ), + 'LastModifiedTime' => array( + 'type' => 'string', + 'location' => 'xml', + ), + 'DomainName' => array( + 'type' => 'string', + 'location' => 'xml', + ), + 'ActiveTrustedSigners' => array( + 'type' => 'object', + 'location' => 'xml', + 'properties' => array( + 'Enabled' => array( + 'type' => 'boolean', + ), + 'Quantity' => array( + 'type' => 'numeric', + ), + 'Items' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Signer', + 'type' => 'object', + 'sentAs' => 'Signer', + 'properties' => array( + 'AwsAccountNumber' => array( + 'type' => 'string', + ), + 'KeyPairIds' => array( + 'type' => 'object', + 'properties' => array( + 'Quantity' => array( + 'type' => 'numeric', + ), + 'Items' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'KeyPairId', + 'type' => 'string', + 'sentAs' => 'KeyPairId', + ), + ), + ), + ), + ), + ), + ), + ), + ), + 'StreamingDistributionConfig' => array( + 'type' => 'object', + 'location' => 'xml', + 'properties' => array( + 'CallerReference' => array( + 'type' => 'string', + ), + 'S3Origin' => array( + 'type' => 'object', + 'properties' => array( + 'DomainName' => array( + 'type' => 'string', + ), + 'OriginAccessIdentity' => array( + 'type' => 'string', + ), + ), + ), + 'Aliases' => array( + 'type' => 'object', + 'properties' => array( + 'Quantity' => array( + 'type' => 'numeric', + ), + 'Items' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'CNAME', + 'type' => 'string', + 'sentAs' => 'CNAME', + ), + ), + ), + ), + 'Comment' => array( + 'type' => 'string', + ), + 'Logging' => array( + 'type' => 'object', + 'properties' => array( + 'Enabled' => array( + 'type' => 'boolean', + ), + 'Bucket' => array( + 'type' => 'string', + ), + 'Prefix' => array( + 'type' => 'string', + ), + ), + ), + 'TrustedSigners' => array( + 'type' => 'object', + 'properties' => array( + 'Enabled' => array( + 'type' => 'boolean', + ), + 'Quantity' => array( + 'type' => 'numeric', + ), + 'Items' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'AwsAccountNumber', + 'type' => 'string', + 'sentAs' => 'AwsAccountNumber', + ), + ), + ), + ), + 'PriceClass' => array( + 'type' => 'string', + ), + 'Enabled' => array( + 'type' => 'boolean', + ), + ), + ), + 'ETag' => array( + 'type' => 'string', + 'location' => 'header', + ), + 'RequestId' => array( + 'location' => 'header', + 'sentAs' => 'x-amz-request-id', + ), + ), + ), + ), + 'iterators' => array( + 'ListCloudFrontOriginAccessIdentities' => array( + 'input_token' => 'Marker', + 'output_token' => 'CloudFrontOriginAccessIdentityList/NextMarker', + 'limit_key' => 'MaxItems', + 'more_results' => 'CloudFrontOriginAccessIdentityList/IsTruncated', + 'result_key' => 'CloudFrontOriginAccessIdentityList/Items', + ), + 'ListDistributions' => array( + 'input_token' => 'Marker', + 'output_token' => 'DistributionList/NextMarker', + 'limit_key' => 'MaxItems', + 'more_results' => 'DistributionList/IsTruncated', + 'result_key' => 'DistributionList/Items', + ), + 'ListInvalidations' => array( + 'input_token' => 'Marker', + 'output_token' => 'InvalidationList/NextMarker', + 'limit_key' => 'MaxItems', + 'more_results' => 'InvalidationList/IsTruncated', + 'result_key' => 'InvalidationList/Items', + ), + 'ListStreamingDistributions' => array( + 'input_token' => 'Marker', + 'output_token' => 'StreamingDistributionList/NextMarker', + 'limit_key' => 'MaxItems', + 'more_results' => 'StreamingDistributionList/IsTruncated', + 'result_key' => 'StreamingDistributionList/Items', + ), + ), + 'waiters' => array( + '__default__' => array( + 'success.type' => 'output', + 'success.path' => 'Status', + ), + 'StreamingDistributionDeployed' => array( + 'operation' => 'GetStreamingDistribution', + 'interval' => 60, + 'max_attempts' => 25, + 'success.value' => 'Deployed', + ), + 'DistributionDeployed' => array( + 'operation' => 'GetDistribution', + 'interval' => 60, + 'max_attempts' => 25, + 'success.value' => 'Deployed', + ), + 'InvalidationCompleted' => array( + 'operation' => 'GetInvalidation', + 'interval' => 20, + 'max_attempts' => 30, + 'success.value' => 'Completed', + ), + ), +); diff --git a/inc/aws-sdk/Aws/CloudHsm/CloudHsmClient.php b/inc/aws-sdk/Aws/CloudHsm/CloudHsmClient.php new file mode 100644 index 0000000..cb36ceb --- /dev/null +++ b/inc/aws-sdk/Aws/CloudHsm/CloudHsmClient.php @@ -0,0 +1,73 @@ +setConfig($config) + ->setConfigDefaults(array( + Options::VERSION => self::LATEST_API_VERSION, + Options::SERVICE_DESCRIPTION => __DIR__ . '/Resources/cloudhsm-%s.php' + )) + ->build(); + } +} diff --git a/inc/aws-sdk/Aws/CloudHsm/Exception/CloudHsmException.php b/inc/aws-sdk/Aws/CloudHsm/Exception/CloudHsmException.php new file mode 100644 index 0000000..6640c67 --- /dev/null +++ b/inc/aws-sdk/Aws/CloudHsm/Exception/CloudHsmException.php @@ -0,0 +1,24 @@ + '2014-05-30', + 'endpointPrefix' => 'cloudhsm', + 'serviceFullName' => 'Amazon CloudHSM', + 'serviceAbbreviation' => 'CloudHSM', + 'serviceType' => 'json', + 'targetPrefix' => 'cloudhsm.', + 'signatureVersion' => 'v4', + 'namespace' => 'CloudHsm', + 'operations' => array( + 'CreateHapg' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'CreateHapgResponse', + 'responseType' => 'model', + 'parameters' => array( + 'Content-Type' => array( + 'static' => true, + 'location' => 'header', + 'default' => 'application/x-amz-json-', + ), + 'command.expects' => array( + 'static' => true, + 'default' => 'application/json', + ), + 'X-Amz-Target' => array( + 'static' => true, + 'location' => 'header', + 'default' => 'cloudhsm.CreateHapg', + ), + 'Label' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'Indicates that an exception occurred in the AWS CloudHSM service.', + 'class' => 'CloudHsmServiceException', + ), + array( + 'reason' => 'Indicates that an internal error occurred.', + 'class' => 'CloudHsmInternalException', + ), + array( + 'reason' => 'Indicates that one or more of the request parameters are not valid.', + 'class' => 'InvalidRequestException', + ), + ), + ), + 'CreateHsm' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'CreateHsmResponse', + 'responseType' => 'model', + 'parameters' => array( + 'Content-Type' => array( + 'static' => true, + 'location' => 'header', + 'default' => 'application/x-amz-json-', + ), + 'command.expects' => array( + 'static' => true, + 'default' => 'application/json', + ), + 'X-Amz-Target' => array( + 'static' => true, + 'location' => 'header', + 'default' => 'cloudhsm.CreateHsm', + ), + 'SubnetId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + ), + 'SshKey' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + ), + 'EniIp' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'IamRoleArn' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + ), + 'ExternalId' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'SubscriptionType' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + ), + 'ClientToken' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'SyslogIp' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'Indicates that an exception occurred in the AWS CloudHSM service.', + 'class' => 'CloudHsmServiceException', + ), + array( + 'reason' => 'Indicates that an internal error occurred.', + 'class' => 'CloudHsmInternalException', + ), + array( + 'reason' => 'Indicates that one or more of the request parameters are not valid.', + 'class' => 'InvalidRequestException', + ), + ), + ), + 'CreateLunaClient' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'CreateLunaClientResponse', + 'responseType' => 'model', + 'parameters' => array( + 'Content-Type' => array( + 'static' => true, + 'location' => 'header', + 'default' => 'application/x-amz-json-', + ), + 'command.expects' => array( + 'static' => true, + 'default' => 'application/json', + ), + 'X-Amz-Target' => array( + 'static' => true, + 'location' => 'header', + 'default' => 'cloudhsm.CreateLunaClient', + ), + 'Label' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'Certificate' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 600, + 'maxLength' => 2400, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'Indicates that an exception occurred in the AWS CloudHSM service.', + 'class' => 'CloudHsmServiceException', + ), + array( + 'reason' => 'Indicates that an internal error occurred.', + 'class' => 'CloudHsmInternalException', + ), + array( + 'reason' => 'Indicates that one or more of the request parameters are not valid.', + 'class' => 'InvalidRequestException', + ), + ), + ), + 'DeleteHapg' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'DeleteHapgResponse', + 'responseType' => 'model', + 'parameters' => array( + 'Content-Type' => array( + 'static' => true, + 'location' => 'header', + 'default' => 'application/x-amz-json-', + ), + 'command.expects' => array( + 'static' => true, + 'default' => 'application/json', + ), + 'X-Amz-Target' => array( + 'static' => true, + 'location' => 'header', + 'default' => 'cloudhsm.DeleteHapg', + ), + 'HapgArn' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'Indicates that an exception occurred in the AWS CloudHSM service.', + 'class' => 'CloudHsmServiceException', + ), + array( + 'reason' => 'Indicates that an internal error occurred.', + 'class' => 'CloudHsmInternalException', + ), + array( + 'reason' => 'Indicates that one or more of the request parameters are not valid.', + 'class' => 'InvalidRequestException', + ), + ), + ), + 'DeleteHsm' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'DeleteHsmResponse', + 'responseType' => 'model', + 'parameters' => array( + 'Content-Type' => array( + 'static' => true, + 'location' => 'header', + 'default' => 'application/x-amz-json-', + ), + 'command.expects' => array( + 'static' => true, + 'default' => 'application/json', + ), + 'X-Amz-Target' => array( + 'static' => true, + 'location' => 'header', + 'default' => 'cloudhsm.DeleteHsm', + ), + 'HsmArn' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'Indicates that an exception occurred in the AWS CloudHSM service.', + 'class' => 'CloudHsmServiceException', + ), + array( + 'reason' => 'Indicates that an internal error occurred.', + 'class' => 'CloudHsmInternalException', + ), + array( + 'reason' => 'Indicates that one or more of the request parameters are not valid.', + 'class' => 'InvalidRequestException', + ), + ), + ), + 'DeleteLunaClient' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'DeleteLunaClientResponse', + 'responseType' => 'model', + 'parameters' => array( + 'Content-Type' => array( + 'static' => true, + 'location' => 'header', + 'default' => 'application/x-amz-json-', + ), + 'command.expects' => array( + 'static' => true, + 'default' => 'application/json', + ), + 'X-Amz-Target' => array( + 'static' => true, + 'location' => 'header', + 'default' => 'cloudhsm.DeleteLunaClient', + ), + 'ClientArn' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'Indicates that an exception occurred in the AWS CloudHSM service.', + 'class' => 'CloudHsmServiceException', + ), + array( + 'reason' => 'Indicates that an internal error occurred.', + 'class' => 'CloudHsmInternalException', + ), + array( + 'reason' => 'Indicates that one or more of the request parameters are not valid.', + 'class' => 'InvalidRequestException', + ), + ), + ), + 'DescribeHapg' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'DescribeHapgResponse', + 'responseType' => 'model', + 'parameters' => array( + 'Content-Type' => array( + 'static' => true, + 'location' => 'header', + 'default' => 'application/x-amz-json-', + ), + 'command.expects' => array( + 'static' => true, + 'default' => 'application/json', + ), + 'X-Amz-Target' => array( + 'static' => true, + 'location' => 'header', + 'default' => 'cloudhsm.DescribeHapg', + ), + 'HapgArn' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'Indicates that an exception occurred in the AWS CloudHSM service.', + 'class' => 'CloudHsmServiceException', + ), + array( + 'reason' => 'Indicates that an internal error occurred.', + 'class' => 'CloudHsmInternalException', + ), + array( + 'reason' => 'Indicates that one or more of the request parameters are not valid.', + 'class' => 'InvalidRequestException', + ), + ), + ), + 'DescribeHsm' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'DescribeHsmResponse', + 'responseType' => 'model', + 'parameters' => array( + 'Content-Type' => array( + 'static' => true, + 'location' => 'header', + 'default' => 'application/x-amz-json-', + ), + 'command.expects' => array( + 'static' => true, + 'default' => 'application/json', + ), + 'X-Amz-Target' => array( + 'static' => true, + 'location' => 'header', + 'default' => 'cloudhsm.DescribeHsm', + ), + 'HsmArn' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'HsmSerialNumber' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'Indicates that an exception occurred in the AWS CloudHSM service.', + 'class' => 'CloudHsmServiceException', + ), + array( + 'reason' => 'Indicates that an internal error occurred.', + 'class' => 'CloudHsmInternalException', + ), + array( + 'reason' => 'Indicates that one or more of the request parameters are not valid.', + 'class' => 'InvalidRequestException', + ), + ), + ), + 'DescribeLunaClient' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'DescribeLunaClientResponse', + 'responseType' => 'model', + 'parameters' => array( + 'Content-Type' => array( + 'static' => true, + 'location' => 'header', + 'default' => 'application/x-amz-json-', + ), + 'command.expects' => array( + 'static' => true, + 'default' => 'application/json', + ), + 'X-Amz-Target' => array( + 'static' => true, + 'location' => 'header', + 'default' => 'cloudhsm.DescribeLunaClient', + ), + 'ClientArn' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'CertificateFingerprint' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'Indicates that an exception occurred in the AWS CloudHSM service.', + 'class' => 'CloudHsmServiceException', + ), + array( + 'reason' => 'Indicates that an internal error occurred.', + 'class' => 'CloudHsmInternalException', + ), + array( + 'reason' => 'Indicates that one or more of the request parameters are not valid.', + 'class' => 'InvalidRequestException', + ), + ), + ), + 'GetConfig' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'GetConfigResponse', + 'responseType' => 'model', + 'parameters' => array( + 'Content-Type' => array( + 'static' => true, + 'location' => 'header', + 'default' => 'application/x-amz-json-', + ), + 'command.expects' => array( + 'static' => true, + 'default' => 'application/json', + ), + 'X-Amz-Target' => array( + 'static' => true, + 'location' => 'header', + 'default' => 'cloudhsm.GetConfig', + ), + 'ClientArn' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + ), + 'ClientVersion' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + ), + 'HapgList' => array( + 'required' => true, + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'HapgArn', + 'type' => 'string', + ), + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'Indicates that an exception occurred in the AWS CloudHSM service.', + 'class' => 'CloudHsmServiceException', + ), + array( + 'reason' => 'Indicates that an internal error occurred.', + 'class' => 'CloudHsmInternalException', + ), + array( + 'reason' => 'Indicates that one or more of the request parameters are not valid.', + 'class' => 'InvalidRequestException', + ), + ), + ), + 'ListAvailableZones' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'ListAvailableZonesResponse', + 'responseType' => 'model', + 'parameters' => array( + 'Content-Type' => array( + 'static' => true, + 'location' => 'header', + 'default' => 'application/x-amz-json-', + ), + 'command.expects' => array( + 'static' => true, + 'default' => 'application/json', + ), + 'X-Amz-Target' => array( + 'static' => true, + 'location' => 'header', + 'default' => 'cloudhsm.ListAvailableZones', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'Indicates that an exception occurred in the AWS CloudHSM service.', + 'class' => 'CloudHsmServiceException', + ), + array( + 'reason' => 'Indicates that an internal error occurred.', + 'class' => 'CloudHsmInternalException', + ), + array( + 'reason' => 'Indicates that one or more of the request parameters are not valid.', + 'class' => 'InvalidRequestException', + ), + ), + ), + 'ListHapgs' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'ListHapgsResponse', + 'responseType' => 'model', + 'parameters' => array( + 'Content-Type' => array( + 'static' => true, + 'location' => 'header', + 'default' => 'application/x-amz-json-', + ), + 'command.expects' => array( + 'static' => true, + 'default' => 'application/json', + ), + 'X-Amz-Target' => array( + 'static' => true, + 'location' => 'header', + 'default' => 'cloudhsm.ListHapgs', + ), + 'NextToken' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'Indicates that an exception occurred in the AWS CloudHSM service.', + 'class' => 'CloudHsmServiceException', + ), + array( + 'reason' => 'Indicates that an internal error occurred.', + 'class' => 'CloudHsmInternalException', + ), + array( + 'reason' => 'Indicates that one or more of the request parameters are not valid.', + 'class' => 'InvalidRequestException', + ), + ), + ), + 'ListHsms' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'ListHsmsResponse', + 'responseType' => 'model', + 'parameters' => array( + 'Content-Type' => array( + 'static' => true, + 'location' => 'header', + 'default' => 'application/x-amz-json-', + ), + 'command.expects' => array( + 'static' => true, + 'default' => 'application/json', + ), + 'X-Amz-Target' => array( + 'static' => true, + 'location' => 'header', + 'default' => 'cloudhsm.ListHsms', + ), + 'NextToken' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'Indicates that an exception occurred in the AWS CloudHSM service.', + 'class' => 'CloudHsmServiceException', + ), + array( + 'reason' => 'Indicates that an internal error occurred.', + 'class' => 'CloudHsmInternalException', + ), + array( + 'reason' => 'Indicates that one or more of the request parameters are not valid.', + 'class' => 'InvalidRequestException', + ), + ), + ), + 'ListLunaClients' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'ListLunaClientsResponse', + 'responseType' => 'model', + 'parameters' => array( + 'Content-Type' => array( + 'static' => true, + 'location' => 'header', + 'default' => 'application/x-amz-json-', + ), + 'command.expects' => array( + 'static' => true, + 'default' => 'application/json', + ), + 'X-Amz-Target' => array( + 'static' => true, + 'location' => 'header', + 'default' => 'cloudhsm.ListLunaClients', + ), + 'NextToken' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'Indicates that an exception occurred in the AWS CloudHSM service.', + 'class' => 'CloudHsmServiceException', + ), + array( + 'reason' => 'Indicates that an internal error occurred.', + 'class' => 'CloudHsmInternalException', + ), + array( + 'reason' => 'Indicates that one or more of the request parameters are not valid.', + 'class' => 'InvalidRequestException', + ), + ), + ), + 'ModifyHapg' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'ModifyHapgResponse', + 'responseType' => 'model', + 'parameters' => array( + 'Content-Type' => array( + 'static' => true, + 'location' => 'header', + 'default' => 'application/x-amz-json-', + ), + 'command.expects' => array( + 'static' => true, + 'default' => 'application/json', + ), + 'X-Amz-Target' => array( + 'static' => true, + 'location' => 'header', + 'default' => 'cloudhsm.ModifyHapg', + ), + 'HapgArn' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + ), + 'Label' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'PartitionSerialList' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'PartitionSerial', + 'type' => 'string', + ), + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'Indicates that an exception occurred in the AWS CloudHSM service.', + 'class' => 'CloudHsmServiceException', + ), + array( + 'reason' => 'Indicates that an internal error occurred.', + 'class' => 'CloudHsmInternalException', + ), + array( + 'reason' => 'Indicates that one or more of the request parameters are not valid.', + 'class' => 'InvalidRequestException', + ), + ), + ), + 'ModifyHsm' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'ModifyHsmResponse', + 'responseType' => 'model', + 'parameters' => array( + 'Content-Type' => array( + 'static' => true, + 'location' => 'header', + 'default' => 'application/x-amz-json-', + ), + 'command.expects' => array( + 'static' => true, + 'default' => 'application/json', + ), + 'X-Amz-Target' => array( + 'static' => true, + 'location' => 'header', + 'default' => 'cloudhsm.ModifyHsm', + ), + 'HsmArn' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + ), + 'SubnetId' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'EniIp' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'IamRoleArn' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'ExternalId' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'SyslogIp' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'Indicates that an exception occurred in the AWS CloudHSM service.', + 'class' => 'CloudHsmServiceException', + ), + array( + 'reason' => 'Indicates that an internal error occurred.', + 'class' => 'CloudHsmInternalException', + ), + array( + 'reason' => 'Indicates that one or more of the request parameters are not valid.', + 'class' => 'InvalidRequestException', + ), + ), + ), + 'ModifyLunaClient' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'ModifyLunaClientResponse', + 'responseType' => 'model', + 'parameters' => array( + 'Content-Type' => array( + 'static' => true, + 'location' => 'header', + 'default' => 'application/x-amz-json-', + ), + 'command.expects' => array( + 'static' => true, + 'default' => 'application/json', + ), + 'X-Amz-Target' => array( + 'static' => true, + 'location' => 'header', + 'default' => 'cloudhsm.ModifyLunaClient', + ), + 'ClientArn' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + ), + 'Certificate' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 600, + 'maxLength' => 2400, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'Indicates that an exception occurred in the AWS CloudHSM service.', + 'class' => 'CloudHsmServiceException', + ), + ), + ), + ), + 'models' => array( + 'CreateHapgResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'HapgArn' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + ), + 'CreateHsmResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'HsmArn' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + ), + 'CreateLunaClientResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'ClientArn' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + ), + 'DeleteHapgResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'Status' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + ), + 'DeleteHsmResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'Status' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + ), + 'DeleteLunaClientResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'Status' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + ), + 'DescribeHapgResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'HapgArn' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'HapgSerial' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'HsmsLastActionFailed' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'HsmArn', + 'type' => 'string', + ), + ), + 'HsmsPendingDeletion' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'HsmArn', + 'type' => 'string', + ), + ), + 'HsmsPendingRegistration' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'HsmArn', + 'type' => 'string', + ), + ), + 'Label' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'LastModifiedTimestamp' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'PartitionSerialList' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'PartitionSerial', + 'type' => 'string', + ), + ), + 'State' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + ), + 'DescribeHsmResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'HsmArn' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'Status' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'StatusDetails' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'AvailabilityZone' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'EniId' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'EniIp' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'SubscriptionType' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'SubscriptionStartDate' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'SubscriptionEndDate' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'VpcId' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'SubnetId' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'IamRoleArn' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'SerialNumber' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'VendorName' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'HsmType' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'SoftwareVersion' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'SshPublicKey' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'SshKeyLastUpdated' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'ServerCertUri' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'ServerCertLastUpdated' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'Partitions' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'PartitionArn', + 'type' => 'string', + ), + ), + ), + ), + 'DescribeLunaClientResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'ClientArn' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'Certificate' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'CertificateFingerprint' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'LastModifiedTimestamp' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'Label' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + ), + 'GetConfigResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'ConfigType' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'ConfigFile' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'ConfigCred' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + ), + 'ListAvailableZonesResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'AZList' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'AZ', + 'type' => 'string', + ), + ), + ), + ), + 'ListHapgsResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'HapgList' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'HapgArn', + 'type' => 'string', + ), + ), + 'NextToken' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + ), + 'ListHsmsResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'HsmList' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'HsmArn', + 'type' => 'string', + ), + ), + 'NextToken' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + ), + 'ListLunaClientsResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'ClientList' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'ClientArn', + 'type' => 'string', + ), + ), + 'NextToken' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + ), + 'ModifyHapgResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'HapgArn' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + ), + 'ModifyHsmResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'HsmArn' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + ), + 'ModifyLunaClientResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'ClientArn' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + ), + ), +); diff --git a/inc/aws-sdk/Aws/CloudSearch/CloudSearchClient.php b/inc/aws-sdk/Aws/CloudSearch/CloudSearchClient.php index 3d52c09..e55dea9 100755 --- a/inc/aws-sdk/Aws/CloudSearch/CloudSearchClient.php +++ b/inc/aws-sdk/Aws/CloudSearch/CloudSearchClient.php @@ -16,6 +16,7 @@ namespace Aws\CloudSearch; +use Aws\CloudSearchDomain\CloudSearchDomainClient; use Aws\Common\Client\AbstractClient; use Aws\Common\Client\ClientBuilder; use Aws\Common\Enum\ClientOptions as Options; @@ -26,36 +27,42 @@ use Guzzle\Service\Resource\ResourceIteratorInterface; /** * Client to interact with Amazon CloudSearch * + * @method Model buildSuggesters(array $args = array()) {@command CloudSearch BuildSuggesters} * @method Model createDomain(array $args = array()) {@command CloudSearch CreateDomain} + * @method Model defineAnalysisScheme(array $args = array()) {@command CloudSearch DefineAnalysisScheme} + * @method Model defineExpression(array $args = array()) {@command CloudSearch DefineExpression} * @method Model defineIndexField(array $args = array()) {@command CloudSearch DefineIndexField} - * @method Model defineRankExpression(array $args = array()) {@command CloudSearch DefineRankExpression} + * @method Model defineSuggester(array $args = array()) {@command CloudSearch DefineSuggester} + * @method Model deleteAnalysisScheme(array $args = array()) {@command CloudSearch DeleteAnalysisScheme} * @method Model deleteDomain(array $args = array()) {@command CloudSearch DeleteDomain} + * @method Model deleteExpression(array $args = array()) {@command CloudSearch DeleteExpression} * @method Model deleteIndexField(array $args = array()) {@command CloudSearch DeleteIndexField} - * @method Model deleteRankExpression(array $args = array()) {@command CloudSearch DeleteRankExpression} - * @method Model describeDefaultSearchField(array $args = array()) {@command CloudSearch DescribeDefaultSearchField} + * @method Model deleteSuggester(array $args = array()) {@command CloudSearch DeleteSuggester} + * @method Model describeAnalysisSchemes(array $args = array()) {@command CloudSearch DescribeAnalysisSchemes} + * @method Model describeAvailabilityOptions(array $args = array()) {@command CloudSearch DescribeAvailabilityOptions} * @method Model describeDomains(array $args = array()) {@command CloudSearch DescribeDomains} + * @method Model describeExpressions(array $args = array()) {@command CloudSearch DescribeExpressions} * @method Model describeIndexFields(array $args = array()) {@command CloudSearch DescribeIndexFields} - * @method Model describeRankExpressions(array $args = array()) {@command CloudSearch DescribeRankExpressions} + * @method Model describeScalingParameters(array $args = array()) {@command CloudSearch DescribeScalingParameters} * @method Model describeServiceAccessPolicies(array $args = array()) {@command CloudSearch DescribeServiceAccessPolicies} - * @method Model describeStemmingOptions(array $args = array()) {@command CloudSearch DescribeStemmingOptions} - * @method Model describeStopwordOptions(array $args = array()) {@command CloudSearch DescribeStopwordOptions} - * @method Model describeSynonymOptions(array $args = array()) {@command CloudSearch DescribeSynonymOptions} + * @method Model describeSuggesters(array $args = array()) {@command CloudSearch DescribeSuggesters} * @method Model indexDocuments(array $args = array()) {@command CloudSearch IndexDocuments} - * @method Model updateDefaultSearchField(array $args = array()) {@command CloudSearch UpdateDefaultSearchField} + * @method Model listDomainNames(array $args = array()) {@command CloudSearch ListDomainNames} + * @method Model updateAvailabilityOptions(array $args = array()) {@command CloudSearch UpdateAvailabilityOptions} + * @method Model updateScalingParameters(array $args = array()) {@command CloudSearch UpdateScalingParameters} * @method Model updateServiceAccessPolicies(array $args = array()) {@command CloudSearch UpdateServiceAccessPolicies} - * @method Model updateStemmingOptions(array $args = array()) {@command CloudSearch UpdateStemmingOptions} - * @method Model updateStopwordOptions(array $args = array()) {@command CloudSearch UpdateStopwordOptions} - * @method Model updateSynonymOptions(array $args = array()) {@command CloudSearch UpdateSynonymOptions} + * @method ResourceIteratorInterface getDescribeAnalysisSchemesIterator(array $args = array()) The input array uses the parameters of the DescribeAnalysisSchemes operation * @method ResourceIteratorInterface getDescribeDomainsIterator(array $args = array()) The input array uses the parameters of the DescribeDomains operation + * @method ResourceIteratorInterface getDescribeExpressionsIterator(array $args = array()) The input array uses the parameters of the DescribeExpressions operation * @method ResourceIteratorInterface getDescribeIndexFieldsIterator(array $args = array()) The input array uses the parameters of the DescribeIndexFields operation - * @method ResourceIteratorInterface getDescribeRankExpressionsIterator(array $args = array()) The input array uses the parameters of the DescribeRankExpressions operation + * @method ResourceIteratorInterface getDescribeSuggestersIterator(array $args = array()) The input array uses the parameters of the DescribeSuggesters operation * - * @link http://docs.aws.amazon.com/aws-sdk-php/guide/latest/service-cloudsearch.html User guide - * @link http://docs.aws.amazon.com/aws-sdk-php/latest/class-Aws.CloudSearch.CloudSearchClient.html API docs + * @link http://docs.aws.amazon.com/aws-sdk-php/v2/guide/service-cloudsearch.html User guide + * @link http://docs.aws.amazon.com/aws-sdk-php/v2/api/class-Aws.CloudSearch.CloudSearchClient.html API docs */ class CloudSearchClient extends AbstractClient { - const LATEST_API_VERSION = '2011-02-01'; + const LATEST_API_VERSION = '2013-01-01'; /** * Factory method to create a new Amazon CloudSearch client using an array of configuration options. @@ -63,7 +70,7 @@ class CloudSearchClient extends AbstractClient * @param array|Collection $config Client configuration data * * @return self - * @see \Aws\Common\Client\DefaultClient for a list of available configuration options + * @link http://docs.aws.amazon.com/aws-sdk-php/v2/guide/configuration.html#client-configuration-options */ public static function factory($config = array()) { @@ -75,4 +82,24 @@ class CloudSearchClient extends AbstractClient )) ->build(); } + + /** + * Create a CloudSearchDomainClient for a particular domain to do searching + * and document uploads. + * + * @param string $domainName Name of the domain for which to create a domain client. + * @param array $config Config options for the CloudSearchDomainClient + * + * @return CloudSearchDomainClient + * @link http://docs.aws.amazon.com/aws-sdk-php/v2/guide/configuration.html#client-configuration-options + */ + public function getDomainClient($domainName, array $config = array()) + { + // Determine the Domain client's endpoint + $config['endpoint'] = $this->describeDomains(array( + 'DomainNames' => array($domainName) + ))->getPath('DomainStatusList/0/SearchService/Endpoint'); + + return CloudSearchDomainClient::factory($config); + } } diff --git a/inc/aws-sdk/Aws/CloudSearch/Enum/IndexFieldType.php b/inc/aws-sdk/Aws/CloudSearch/Enum/IndexFieldType.php index c6bffff..048b6e1 100755 --- a/inc/aws-sdk/Aws/CloudSearch/Enum/IndexFieldType.php +++ b/inc/aws-sdk/Aws/CloudSearch/Enum/IndexFieldType.php @@ -24,6 +24,15 @@ use Aws\Common\Enum; class IndexFieldType extends Enum { const UINT = 'uint'; + const INT = 'int'; + const DOUBLE = 'double'; const LITERAL = 'literal'; const TEXT = 'text'; + const DATE = 'date'; + const LATLON = 'latlon'; + const INT_ARRAY = 'int-array'; + const DOUBLE_ARRAY = 'double-array'; + const LITERAL_ARRAY = 'literal-array'; + const TEXT_ARRAY = 'text-array'; + const DATE_ARRAY = 'date-array'; } diff --git a/inc/aws-sdk/Aws/CloudSearch/Enum/OptionState.php b/inc/aws-sdk/Aws/CloudSearch/Enum/OptionState.php index d291bc2..d233ee6 100755 --- a/inc/aws-sdk/Aws/CloudSearch/Enum/OptionState.php +++ b/inc/aws-sdk/Aws/CloudSearch/Enum/OptionState.php @@ -26,4 +26,5 @@ class OptionState extends Enum const REQUIRES_INDEX_DOCUMENTS = 'RequiresIndexDocuments'; const PROCESSING = 'Processing'; const ACTIVE = 'Active'; + const FAILED_TO_VALIDATE = 'FailedToValidate'; } diff --git a/inc/aws-sdk/Aws/CloudSearch/Resources/cloudsearch-2011-02-01.php b/inc/aws-sdk/Aws/CloudSearch/Resources/cloudsearch-2011-02-01.php index 5bb522b..a6ffa61 100755 --- a/inc/aws-sdk/Aws/CloudSearch/Resources/cloudsearch-2011-02-01.php +++ b/inc/aws-sdk/Aws/CloudSearch/Resources/cloudsearch-2011-02-01.php @@ -84,10 +84,6 @@ return array ( 'reason' => 'An internal error occurred while processing the request. If this problem persists, report an issue from the Service Health Dashboard.', 'class' => 'InternalException', ), - array( - 'reason' => 'An internal error occurred while processing the request. If this problem persists, report an issue from the Service Health Dashboard.', - 'class' => 'InternalException', - ), array( 'reason' => 'The request was rejected because a resource limit has already been met.', 'class' => 'LimitExceededException', @@ -132,11 +128,6 @@ return array ( 'IndexFieldType' => array( 'required' => true, 'type' => 'string', - 'enum' => array( - 'uint', - 'literal', - 'text', - ), ), 'UIntOptions' => array( 'type' => 'object', @@ -199,11 +190,6 @@ return array ( 'SourceDataFunction' => array( 'required' => true, 'type' => 'string', - 'enum' => array( - 'Copy', - 'TrimTitle', - 'Map', - ), ), 'SourceDataCopy' => array( 'type' => 'object', @@ -2347,16 +2333,14 @@ return array ( ), ), 'iterators' => array( - 'operations' => array( - 'DescribeDomains' => array( - 'result_key' => 'DomainStatusList', - ), - 'DescribeIndexFields' => array( - 'result_key' => 'IndexFields', - ), - 'DescribeRankExpressions' => array( - 'result_key' => 'RankExpressions', - ), + 'DescribeDomains' => array( + 'result_key' => 'DomainStatusList', + ), + 'DescribeIndexFields' => array( + 'result_key' => 'IndexFields', + ), + 'DescribeRankExpressions' => array( + 'result_key' => 'RankExpressions', ), ), ); diff --git a/inc/aws-sdk/Aws/CloudSearch/Resources/cloudsearch-2013-01-01.php b/inc/aws-sdk/Aws/CloudSearch/Resources/cloudsearch-2013-01-01.php new file mode 100644 index 0000000..601e811 --- /dev/null +++ b/inc/aws-sdk/Aws/CloudSearch/Resources/cloudsearch-2013-01-01.php @@ -0,0 +1,3497 @@ + '2013-01-01', + 'endpointPrefix' => 'cloudsearch', + 'serviceFullName' => 'Amazon CloudSearch', + 'serviceType' => 'query', + 'resultWrapped' => true, + 'signatureVersion' => 'v4', + 'namespace' => 'CloudSearch', + 'regions' => array( + 'us-east-1' => array( + 'http' => false, + 'https' => true, + 'hostname' => 'cloudsearch.us-east-1.amazonaws.com', + ), + 'us-west-1' => array( + 'http' => false, + 'https' => true, + 'hostname' => 'cloudsearch.us-west-1.amazonaws.com', + ), + 'us-west-2' => array( + 'http' => false, + 'https' => true, + 'hostname' => 'cloudsearch.us-west-2.amazonaws.com', + ), + 'eu-west-1' => array( + 'http' => false, + 'https' => true, + 'hostname' => 'cloudsearch.eu-west-1.amazonaws.com', + ), + 'ap-northeast-1' => array( + 'http' => false, + 'https' => true, + 'hostname' => 'cloudsearch.ap-northeast-1.amazonaws.com', + ), + 'ap-southeast-1' => array( + 'http' => false, + 'https' => true, + 'hostname' => 'cloudsearch.ap-southeast-1.amazonaws.com', + ), + 'ap-southeast-2' => array( + 'http' => false, + 'https' => true, + 'hostname' => 'cloudsearch.ap-southeast-2.amazonaws.com', + ), + 'sa-east-1' => array( + 'http' => false, + 'https' => true, + 'hostname' => 'cloudsearch.sa-east-1.amazonaws.com', + ), + ), + 'operations' => array( + 'BuildSuggesters' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'BuildSuggestersResponse', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'BuildSuggesters', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2013-01-01', + ), + 'DomainName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 3, + 'maxLength' => 28, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'An error occurred while processing the request.', + 'class' => 'BaseException', + ), + array( + 'reason' => 'An internal error occurred while processing the request. If this problem persists, report an issue from the Service Health Dashboard.', + 'class' => 'InternalException', + ), + array( + 'reason' => 'The request was rejected because it attempted to reference a resource that does not exist.', + 'class' => 'ResourceNotFoundException', + ), + ), + ), + 'CreateDomain' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'CreateDomainResponse', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'CreateDomain', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2013-01-01', + ), + 'DomainName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 3, + 'maxLength' => 28, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'An error occurred while processing the request.', + 'class' => 'BaseException', + ), + array( + 'reason' => 'An internal error occurred while processing the request. If this problem persists, report an issue from the Service Health Dashboard.', + 'class' => 'InternalException', + ), + array( + 'reason' => 'The request was rejected because a resource limit has already been met.', + 'class' => 'LimitExceededException', + ), + ), + ), + 'DefineAnalysisScheme' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'DefineAnalysisSchemeResponse', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DefineAnalysisScheme', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2013-01-01', + ), + 'DomainName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 3, + 'maxLength' => 28, + ), + 'AnalysisScheme' => array( + 'required' => true, + 'type' => 'object', + 'location' => 'aws.query', + 'properties' => array( + 'AnalysisSchemeName' => array( + 'required' => true, + 'type' => 'string', + 'minLength' => 1, + 'maxLength' => 64, + ), + 'AnalysisSchemeLanguage' => array( + 'required' => true, + 'type' => 'string', + ), + 'AnalysisOptions' => array( + 'type' => 'object', + 'properties' => array( + 'Synonyms' => array( + 'type' => 'string', + ), + 'Stopwords' => array( + 'type' => 'string', + ), + 'StemmingDictionary' => array( + 'type' => 'string', + ), + 'JapaneseTokenizationDictionary' => array( + 'type' => 'string', + ), + 'AlgorithmicStemming' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'An error occurred while processing the request.', + 'class' => 'BaseException', + ), + array( + 'reason' => 'An internal error occurred while processing the request. If this problem persists, report an issue from the Service Health Dashboard.', + 'class' => 'InternalException', + ), + array( + 'reason' => 'The request was rejected because a resource limit has already been met.', + 'class' => 'LimitExceededException', + ), + array( + 'reason' => 'The request was rejected because it specified an invalid type definition.', + 'class' => 'InvalidTypeException', + ), + array( + 'reason' => 'The request was rejected because it attempted to reference a resource that does not exist.', + 'class' => 'ResourceNotFoundException', + ), + ), + ), + 'DefineExpression' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'DefineExpressionResponse', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DefineExpression', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2013-01-01', + ), + 'DomainName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 3, + 'maxLength' => 28, + ), + 'Expression' => array( + 'required' => true, + 'type' => 'object', + 'location' => 'aws.query', + 'properties' => array( + 'ExpressionName' => array( + 'required' => true, + 'type' => 'string', + 'minLength' => 1, + 'maxLength' => 64, + ), + 'ExpressionValue' => array( + 'required' => true, + 'type' => 'string', + 'minLength' => 1, + 'maxLength' => 10240, + ), + ), + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'An error occurred while processing the request.', + 'class' => 'BaseException', + ), + array( + 'reason' => 'An internal error occurred while processing the request. If this problem persists, report an issue from the Service Health Dashboard.', + 'class' => 'InternalException', + ), + array( + 'reason' => 'The request was rejected because a resource limit has already been met.', + 'class' => 'LimitExceededException', + ), + array( + 'reason' => 'The request was rejected because it specified an invalid type definition.', + 'class' => 'InvalidTypeException', + ), + array( + 'reason' => 'The request was rejected because it attempted to reference a resource that does not exist.', + 'class' => 'ResourceNotFoundException', + ), + ), + ), + 'DefineIndexField' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'DefineIndexFieldResponse', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DefineIndexField', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2013-01-01', + ), + 'DomainName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 3, + 'maxLength' => 28, + ), + 'IndexField' => array( + 'required' => true, + 'type' => 'object', + 'location' => 'aws.query', + 'properties' => array( + 'IndexFieldName' => array( + 'required' => true, + 'type' => 'string', + 'minLength' => 1, + 'maxLength' => 64, + ), + 'IndexFieldType' => array( + 'required' => true, + 'type' => 'string', + ), + 'IntOptions' => array( + 'type' => 'object', + 'properties' => array( + 'DefaultValue' => array( + 'type' => 'numeric', + ), + 'SourceField' => array( + 'type' => 'string', + 'minLength' => 1, + 'maxLength' => 64, + ), + 'FacetEnabled' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + ), + 'SearchEnabled' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + ), + 'ReturnEnabled' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + ), + 'SortEnabled' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + ), + ), + ), + 'DoubleOptions' => array( + 'type' => 'object', + 'properties' => array( + 'DefaultValue' => array( + 'type' => 'numeric', + ), + 'SourceField' => array( + 'type' => 'string', + 'minLength' => 1, + 'maxLength' => 64, + ), + 'FacetEnabled' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + ), + 'SearchEnabled' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + ), + 'ReturnEnabled' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + ), + 'SortEnabled' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + ), + ), + ), + 'LiteralOptions' => array( + 'type' => 'object', + 'properties' => array( + 'DefaultValue' => array( + 'type' => 'string', + 'maxLength' => 1024, + ), + 'SourceField' => array( + 'type' => 'string', + 'minLength' => 1, + 'maxLength' => 64, + ), + 'FacetEnabled' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + ), + 'SearchEnabled' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + ), + 'ReturnEnabled' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + ), + 'SortEnabled' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + ), + ), + ), + 'TextOptions' => array( + 'type' => 'object', + 'properties' => array( + 'DefaultValue' => array( + 'type' => 'string', + 'maxLength' => 1024, + ), + 'SourceField' => array( + 'type' => 'string', + 'minLength' => 1, + 'maxLength' => 64, + ), + 'ReturnEnabled' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + ), + 'SortEnabled' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + ), + 'HighlightEnabled' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + ), + 'AnalysisScheme' => array( + 'type' => 'string', + ), + ), + ), + 'DateOptions' => array( + 'type' => 'object', + 'properties' => array( + 'DefaultValue' => array( + 'type' => 'string', + 'maxLength' => 1024, + ), + 'SourceField' => array( + 'type' => 'string', + 'minLength' => 1, + 'maxLength' => 64, + ), + 'FacetEnabled' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + ), + 'SearchEnabled' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + ), + 'ReturnEnabled' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + ), + 'SortEnabled' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + ), + ), + ), + 'LatLonOptions' => array( + 'type' => 'object', + 'properties' => array( + 'DefaultValue' => array( + 'type' => 'string', + 'maxLength' => 1024, + ), + 'SourceField' => array( + 'type' => 'string', + 'minLength' => 1, + 'maxLength' => 64, + ), + 'FacetEnabled' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + ), + 'SearchEnabled' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + ), + 'ReturnEnabled' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + ), + 'SortEnabled' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + ), + ), + ), + 'IntArrayOptions' => array( + 'type' => 'object', + 'properties' => array( + 'DefaultValue' => array( + 'type' => 'numeric', + ), + 'SourceFields' => array( + 'type' => 'string', + ), + 'FacetEnabled' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + ), + 'SearchEnabled' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + ), + 'ReturnEnabled' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + ), + ), + ), + 'DoubleArrayOptions' => array( + 'type' => 'object', + 'properties' => array( + 'DefaultValue' => array( + 'type' => 'numeric', + ), + 'SourceFields' => array( + 'type' => 'string', + ), + 'FacetEnabled' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + ), + 'SearchEnabled' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + ), + 'ReturnEnabled' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + ), + ), + ), + 'LiteralArrayOptions' => array( + 'type' => 'object', + 'properties' => array( + 'DefaultValue' => array( + 'type' => 'string', + 'maxLength' => 1024, + ), + 'SourceFields' => array( + 'type' => 'string', + ), + 'FacetEnabled' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + ), + 'SearchEnabled' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + ), + 'ReturnEnabled' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + ), + ), + ), + 'TextArrayOptions' => array( + 'type' => 'object', + 'properties' => array( + 'DefaultValue' => array( + 'type' => 'string', + 'maxLength' => 1024, + ), + 'SourceFields' => array( + 'type' => 'string', + ), + 'ReturnEnabled' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + ), + 'HighlightEnabled' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + ), + 'AnalysisScheme' => array( + 'type' => 'string', + ), + ), + ), + 'DateArrayOptions' => array( + 'type' => 'object', + 'properties' => array( + 'DefaultValue' => array( + 'type' => 'string', + 'maxLength' => 1024, + ), + 'SourceFields' => array( + 'type' => 'string', + ), + 'FacetEnabled' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + ), + 'SearchEnabled' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + ), + 'ReturnEnabled' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + ), + ), + ), + ), + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'An error occurred while processing the request.', + 'class' => 'BaseException', + ), + array( + 'reason' => 'An internal error occurred while processing the request. If this problem persists, report an issue from the Service Health Dashboard.', + 'class' => 'InternalException', + ), + array( + 'reason' => 'The request was rejected because a resource limit has already been met.', + 'class' => 'LimitExceededException', + ), + array( + 'reason' => 'The request was rejected because it specified an invalid type definition.', + 'class' => 'InvalidTypeException', + ), + array( + 'reason' => 'The request was rejected because it attempted to reference a resource that does not exist.', + 'class' => 'ResourceNotFoundException', + ), + ), + ), + 'DefineSuggester' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'DefineSuggesterResponse', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DefineSuggester', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2013-01-01', + ), + 'DomainName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 3, + 'maxLength' => 28, + ), + 'Suggester' => array( + 'required' => true, + 'type' => 'object', + 'location' => 'aws.query', + 'properties' => array( + 'SuggesterName' => array( + 'required' => true, + 'type' => 'string', + 'minLength' => 1, + 'maxLength' => 64, + ), + 'DocumentSuggesterOptions' => array( + 'required' => true, + 'type' => 'object', + 'properties' => array( + 'SourceField' => array( + 'required' => true, + 'type' => 'string', + 'minLength' => 1, + 'maxLength' => 64, + ), + 'FuzzyMatching' => array( + 'type' => 'string', + ), + 'SortExpression' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'An error occurred while processing the request.', + 'class' => 'BaseException', + ), + array( + 'reason' => 'An internal error occurred while processing the request. If this problem persists, report an issue from the Service Health Dashboard.', + 'class' => 'InternalException', + ), + array( + 'reason' => 'The request was rejected because a resource limit has already been met.', + 'class' => 'LimitExceededException', + ), + array( + 'reason' => 'The request was rejected because it specified an invalid type definition.', + 'class' => 'InvalidTypeException', + ), + array( + 'reason' => 'The request was rejected because it attempted to reference a resource that does not exist.', + 'class' => 'ResourceNotFoundException', + ), + ), + ), + 'DeleteAnalysisScheme' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'DeleteAnalysisSchemeResponse', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DeleteAnalysisScheme', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2013-01-01', + ), + 'DomainName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 3, + 'maxLength' => 28, + ), + 'AnalysisSchemeName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 1, + 'maxLength' => 64, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'An error occurred while processing the request.', + 'class' => 'BaseException', + ), + array( + 'reason' => 'An internal error occurred while processing the request. If this problem persists, report an issue from the Service Health Dashboard.', + 'class' => 'InternalException', + ), + array( + 'reason' => 'The request was rejected because it specified an invalid type definition.', + 'class' => 'InvalidTypeException', + ), + array( + 'reason' => 'The request was rejected because it attempted to reference a resource that does not exist.', + 'class' => 'ResourceNotFoundException', + ), + ), + ), + 'DeleteDomain' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'DeleteDomainResponse', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DeleteDomain', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2013-01-01', + ), + 'DomainName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 3, + 'maxLength' => 28, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'An error occurred while processing the request.', + 'class' => 'BaseException', + ), + array( + 'reason' => 'An internal error occurred while processing the request. If this problem persists, report an issue from the Service Health Dashboard.', + 'class' => 'InternalException', + ), + ), + ), + 'DeleteExpression' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'DeleteExpressionResponse', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DeleteExpression', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2013-01-01', + ), + 'DomainName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 3, + 'maxLength' => 28, + ), + 'ExpressionName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 1, + 'maxLength' => 64, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'An error occurred while processing the request.', + 'class' => 'BaseException', + ), + array( + 'reason' => 'An internal error occurred while processing the request. If this problem persists, report an issue from the Service Health Dashboard.', + 'class' => 'InternalException', + ), + array( + 'reason' => 'The request was rejected because it specified an invalid type definition.', + 'class' => 'InvalidTypeException', + ), + array( + 'reason' => 'The request was rejected because it attempted to reference a resource that does not exist.', + 'class' => 'ResourceNotFoundException', + ), + ), + ), + 'DeleteIndexField' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'DeleteIndexFieldResponse', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DeleteIndexField', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2013-01-01', + ), + 'DomainName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 3, + 'maxLength' => 28, + ), + 'IndexFieldName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 1, + 'maxLength' => 64, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'An error occurred while processing the request.', + 'class' => 'BaseException', + ), + array( + 'reason' => 'An internal error occurred while processing the request. If this problem persists, report an issue from the Service Health Dashboard.', + 'class' => 'InternalException', + ), + array( + 'reason' => 'The request was rejected because it specified an invalid type definition.', + 'class' => 'InvalidTypeException', + ), + array( + 'reason' => 'The request was rejected because it attempted to reference a resource that does not exist.', + 'class' => 'ResourceNotFoundException', + ), + ), + ), + 'DeleteSuggester' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'DeleteSuggesterResponse', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DeleteSuggester', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2013-01-01', + ), + 'DomainName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 3, + 'maxLength' => 28, + ), + 'SuggesterName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 1, + 'maxLength' => 64, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'An error occurred while processing the request.', + 'class' => 'BaseException', + ), + array( + 'reason' => 'An internal error occurred while processing the request. If this problem persists, report an issue from the Service Health Dashboard.', + 'class' => 'InternalException', + ), + array( + 'reason' => 'The request was rejected because it specified an invalid type definition.', + 'class' => 'InvalidTypeException', + ), + array( + 'reason' => 'The request was rejected because it attempted to reference a resource that does not exist.', + 'class' => 'ResourceNotFoundException', + ), + ), + ), + 'DescribeAnalysisSchemes' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'DescribeAnalysisSchemesResponse', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DescribeAnalysisSchemes', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2013-01-01', + ), + 'DomainName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 3, + 'maxLength' => 28, + ), + 'AnalysisSchemeNames' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'AnalysisSchemeNames.member', + 'items' => array( + 'name' => 'StandardName', + 'type' => 'string', + 'minLength' => 1, + 'maxLength' => 64, + ), + ), + 'Deployed' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'An error occurred while processing the request.', + 'class' => 'BaseException', + ), + array( + 'reason' => 'An internal error occurred while processing the request. If this problem persists, report an issue from the Service Health Dashboard.', + 'class' => 'InternalException', + ), + array( + 'reason' => 'The request was rejected because it attempted to reference a resource that does not exist.', + 'class' => 'ResourceNotFoundException', + ), + ), + ), + 'DescribeAvailabilityOptions' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'DescribeAvailabilityOptionsResponse', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DescribeAvailabilityOptions', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2013-01-01', + ), + 'DomainName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 3, + 'maxLength' => 28, + ), + 'Deployed' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'An error occurred while processing the request.', + 'class' => 'BaseException', + ), + array( + 'reason' => 'An internal error occurred while processing the request. If this problem persists, report an issue from the Service Health Dashboard.', + 'class' => 'InternalException', + ), + array( + 'reason' => 'The request was rejected because it specified an invalid type definition.', + 'class' => 'InvalidTypeException', + ), + array( + 'reason' => 'The request was rejected because a resource limit has already been met.', + 'class' => 'LimitExceededException', + ), + array( + 'reason' => 'The request was rejected because it attempted to reference a resource that does not exist.', + 'class' => 'ResourceNotFoundException', + ), + array( + 'reason' => 'The request was rejected because it attempted an operation which is not enabled.', + 'class' => 'DisabledOperationException', + ), + ), + ), + 'DescribeDomains' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'DescribeDomainsResponse', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DescribeDomains', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2013-01-01', + ), + 'DomainNames' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'DomainNames.member', + 'items' => array( + 'name' => 'DomainName', + 'type' => 'string', + 'minLength' => 3, + 'maxLength' => 28, + ), + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'An error occurred while processing the request.', + 'class' => 'BaseException', + ), + array( + 'reason' => 'An internal error occurred while processing the request. If this problem persists, report an issue from the Service Health Dashboard.', + 'class' => 'InternalException', + ), + ), + ), + 'DescribeExpressions' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'DescribeExpressionsResponse', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DescribeExpressions', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2013-01-01', + ), + 'DomainName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 3, + 'maxLength' => 28, + ), + 'ExpressionNames' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'ExpressionNames.member', + 'items' => array( + 'name' => 'StandardName', + 'type' => 'string', + 'minLength' => 1, + 'maxLength' => 64, + ), + ), + 'Deployed' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'An error occurred while processing the request.', + 'class' => 'BaseException', + ), + array( + 'reason' => 'An internal error occurred while processing the request. If this problem persists, report an issue from the Service Health Dashboard.', + 'class' => 'InternalException', + ), + array( + 'reason' => 'The request was rejected because it attempted to reference a resource that does not exist.', + 'class' => 'ResourceNotFoundException', + ), + ), + ), + 'DescribeIndexFields' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'DescribeIndexFieldsResponse', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DescribeIndexFields', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2013-01-01', + ), + 'DomainName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 3, + 'maxLength' => 28, + ), + 'FieldNames' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'FieldNames.member', + 'items' => array( + 'name' => 'DynamicFieldName', + 'type' => 'string', + 'minLength' => 1, + 'maxLength' => 64, + ), + ), + 'Deployed' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'An error occurred while processing the request.', + 'class' => 'BaseException', + ), + array( + 'reason' => 'An internal error occurred while processing the request. If this problem persists, report an issue from the Service Health Dashboard.', + 'class' => 'InternalException', + ), + array( + 'reason' => 'The request was rejected because it attempted to reference a resource that does not exist.', + 'class' => 'ResourceNotFoundException', + ), + ), + ), + 'DescribeScalingParameters' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'DescribeScalingParametersResponse', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DescribeScalingParameters', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2013-01-01', + ), + 'DomainName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 3, + 'maxLength' => 28, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'An error occurred while processing the request.', + 'class' => 'BaseException', + ), + array( + 'reason' => 'An internal error occurred while processing the request. If this problem persists, report an issue from the Service Health Dashboard.', + 'class' => 'InternalException', + ), + array( + 'reason' => 'The request was rejected because it attempted to reference a resource that does not exist.', + 'class' => 'ResourceNotFoundException', + ), + ), + ), + 'DescribeServiceAccessPolicies' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'DescribeServiceAccessPoliciesResponse', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DescribeServiceAccessPolicies', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2013-01-01', + ), + 'DomainName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 3, + 'maxLength' => 28, + ), + 'Deployed' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'An error occurred while processing the request.', + 'class' => 'BaseException', + ), + array( + 'reason' => 'An internal error occurred while processing the request. If this problem persists, report an issue from the Service Health Dashboard.', + 'class' => 'InternalException', + ), + array( + 'reason' => 'The request was rejected because it attempted to reference a resource that does not exist.', + 'class' => 'ResourceNotFoundException', + ), + ), + ), + 'DescribeSuggesters' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'DescribeSuggestersResponse', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DescribeSuggesters', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2013-01-01', + ), + 'DomainName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 3, + 'maxLength' => 28, + ), + 'SuggesterNames' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'SuggesterNames.member', + 'items' => array( + 'name' => 'StandardName', + 'type' => 'string', + 'minLength' => 1, + 'maxLength' => 64, + ), + ), + 'Deployed' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'An error occurred while processing the request.', + 'class' => 'BaseException', + ), + array( + 'reason' => 'An internal error occurred while processing the request. If this problem persists, report an issue from the Service Health Dashboard.', + 'class' => 'InternalException', + ), + array( + 'reason' => 'The request was rejected because it attempted to reference a resource that does not exist.', + 'class' => 'ResourceNotFoundException', + ), + ), + ), + 'IndexDocuments' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'IndexDocumentsResponse', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'IndexDocuments', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2013-01-01', + ), + 'DomainName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 3, + 'maxLength' => 28, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'An error occurred while processing the request.', + 'class' => 'BaseException', + ), + array( + 'reason' => 'An internal error occurred while processing the request. If this problem persists, report an issue from the Service Health Dashboard.', + 'class' => 'InternalException', + ), + array( + 'reason' => 'The request was rejected because it attempted to reference a resource that does not exist.', + 'class' => 'ResourceNotFoundException', + ), + ), + ), + 'ListDomainNames' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'ListDomainNamesResponse', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'ListDomainNames', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2013-01-01', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'An error occurred while processing the request.', + 'class' => 'BaseException', + ), + ), + ), + 'UpdateAvailabilityOptions' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'UpdateAvailabilityOptionsResponse', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'UpdateAvailabilityOptions', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2013-01-01', + ), + 'DomainName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 3, + 'maxLength' => 28, + ), + 'MultiAZ' => array( + 'required' => true, + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'An error occurred while processing the request.', + 'class' => 'BaseException', + ), + array( + 'reason' => 'An internal error occurred while processing the request. If this problem persists, report an issue from the Service Health Dashboard.', + 'class' => 'InternalException', + ), + array( + 'reason' => 'The request was rejected because it specified an invalid type definition.', + 'class' => 'InvalidTypeException', + ), + array( + 'reason' => 'The request was rejected because a resource limit has already been met.', + 'class' => 'LimitExceededException', + ), + array( + 'reason' => 'The request was rejected because it attempted to reference a resource that does not exist.', + 'class' => 'ResourceNotFoundException', + ), + array( + 'reason' => 'The request was rejected because it attempted an operation which is not enabled.', + 'class' => 'DisabledOperationException', + ), + ), + ), + 'UpdateScalingParameters' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'UpdateScalingParametersResponse', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'UpdateScalingParameters', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2013-01-01', + ), + 'DomainName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 3, + 'maxLength' => 28, + ), + 'ScalingParameters' => array( + 'required' => true, + 'type' => 'object', + 'location' => 'aws.query', + 'properties' => array( + 'DesiredInstanceType' => array( + 'type' => 'string', + ), + 'DesiredReplicationCount' => array( + 'type' => 'numeric', + ), + 'DesiredPartitionCount' => array( + 'type' => 'numeric', + ), + ), + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'An error occurred while processing the request.', + 'class' => 'BaseException', + ), + array( + 'reason' => 'An internal error occurred while processing the request. If this problem persists, report an issue from the Service Health Dashboard.', + 'class' => 'InternalException', + ), + array( + 'reason' => 'The request was rejected because a resource limit has already been met.', + 'class' => 'LimitExceededException', + ), + array( + 'reason' => 'The request was rejected because it attempted to reference a resource that does not exist.', + 'class' => 'ResourceNotFoundException', + ), + array( + 'reason' => 'The request was rejected because it specified an invalid type definition.', + 'class' => 'InvalidTypeException', + ), + ), + ), + 'UpdateServiceAccessPolicies' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'UpdateServiceAccessPoliciesResponse', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'UpdateServiceAccessPolicies', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2013-01-01', + ), + 'DomainName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 3, + 'maxLength' => 28, + ), + 'AccessPolicies' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'An error occurred while processing the request.', + 'class' => 'BaseException', + ), + array( + 'reason' => 'An internal error occurred while processing the request. If this problem persists, report an issue from the Service Health Dashboard.', + 'class' => 'InternalException', + ), + array( + 'reason' => 'The request was rejected because a resource limit has already been met.', + 'class' => 'LimitExceededException', + ), + array( + 'reason' => 'The request was rejected because it attempted to reference a resource that does not exist.', + 'class' => 'ResourceNotFoundException', + ), + array( + 'reason' => 'The request was rejected because it specified an invalid type definition.', + 'class' => 'InvalidTypeException', + ), + ), + ), + ), + 'models' => array( + 'BuildSuggestersResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'FieldNames' => array( + 'type' => 'array', + 'location' => 'xml', + 'items' => array( + 'name' => 'FieldName', + 'type' => 'string', + 'sentAs' => 'member', + ), + ), + ), + ), + 'CreateDomainResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'DomainStatus' => array( + 'type' => 'object', + 'location' => 'xml', + 'properties' => array( + 'DomainId' => array( + 'type' => 'string', + ), + 'DomainName' => array( + 'type' => 'string', + ), + 'ARN' => array( + 'type' => 'string', + ), + 'Created' => array( + 'type' => 'boolean', + ), + 'Deleted' => array( + 'type' => 'boolean', + ), + 'DocService' => array( + 'type' => 'object', + 'properties' => array( + 'Endpoint' => array( + 'type' => 'string', + ), + ), + ), + 'SearchService' => array( + 'type' => 'object', + 'properties' => array( + 'Endpoint' => array( + 'type' => 'string', + ), + ), + ), + 'RequiresIndexDocuments' => array( + 'type' => 'boolean', + ), + 'Processing' => array( + 'type' => 'boolean', + ), + 'SearchInstanceType' => array( + 'type' => 'string', + ), + 'SearchPartitionCount' => array( + 'type' => 'numeric', + ), + 'SearchInstanceCount' => array( + 'type' => 'numeric', + ), + 'Limits' => array( + 'type' => 'object', + 'properties' => array( + 'MaximumReplicationCount' => array( + 'type' => 'numeric', + ), + 'MaximumPartitionCount' => array( + 'type' => 'numeric', + ), + ), + ), + ), + ), + ), + ), + 'DefineAnalysisSchemeResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'AnalysisScheme' => array( + 'type' => 'object', + 'location' => 'xml', + 'properties' => array( + 'Options' => array( + 'type' => 'object', + 'properties' => array( + 'AnalysisSchemeName' => array( + 'type' => 'string', + ), + 'AnalysisSchemeLanguage' => array( + 'type' => 'string', + ), + 'AnalysisOptions' => array( + 'type' => 'object', + 'properties' => array( + 'Synonyms' => array( + 'type' => 'string', + ), + 'Stopwords' => array( + 'type' => 'string', + ), + 'StemmingDictionary' => array( + 'type' => 'string', + ), + 'JapaneseTokenizationDictionary' => array( + 'type' => 'string', + ), + 'AlgorithmicStemming' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + 'Status' => array( + 'type' => 'object', + 'properties' => array( + 'CreationDate' => array( + 'type' => 'string', + ), + 'UpdateDate' => array( + 'type' => 'string', + ), + 'UpdateVersion' => array( + 'type' => 'numeric', + ), + 'State' => array( + 'type' => 'string', + ), + 'PendingDeletion' => array( + 'type' => 'boolean', + ), + ), + ), + ), + ), + ), + ), + 'DefineExpressionResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'Expression' => array( + 'type' => 'object', + 'location' => 'xml', + 'properties' => array( + 'Options' => array( + 'type' => 'object', + 'properties' => array( + 'ExpressionName' => array( + 'type' => 'string', + ), + 'ExpressionValue' => array( + 'type' => 'string', + ), + ), + ), + 'Status' => array( + 'type' => 'object', + 'properties' => array( + 'CreationDate' => array( + 'type' => 'string', + ), + 'UpdateDate' => array( + 'type' => 'string', + ), + 'UpdateVersion' => array( + 'type' => 'numeric', + ), + 'State' => array( + 'type' => 'string', + ), + 'PendingDeletion' => array( + 'type' => 'boolean', + ), + ), + ), + ), + ), + ), + ), + 'DefineIndexFieldResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'IndexField' => array( + 'type' => 'object', + 'location' => 'xml', + 'properties' => array( + 'Options' => array( + 'type' => 'object', + 'properties' => array( + 'IndexFieldName' => array( + 'type' => 'string', + ), + 'IndexFieldType' => array( + 'type' => 'string', + ), + 'IntOptions' => array( + 'type' => 'object', + 'properties' => array( + 'DefaultValue' => array( + 'type' => 'numeric', + ), + 'SourceField' => array( + 'type' => 'string', + ), + 'FacetEnabled' => array( + 'type' => 'boolean', + ), + 'SearchEnabled' => array( + 'type' => 'boolean', + ), + 'ReturnEnabled' => array( + 'type' => 'boolean', + ), + 'SortEnabled' => array( + 'type' => 'boolean', + ), + ), + ), + 'DoubleOptions' => array( + 'type' => 'object', + 'properties' => array( + 'DefaultValue' => array( + 'type' => 'numeric', + ), + 'SourceField' => array( + 'type' => 'string', + ), + 'FacetEnabled' => array( + 'type' => 'boolean', + ), + 'SearchEnabled' => array( + 'type' => 'boolean', + ), + 'ReturnEnabled' => array( + 'type' => 'boolean', + ), + 'SortEnabled' => array( + 'type' => 'boolean', + ), + ), + ), + 'LiteralOptions' => array( + 'type' => 'object', + 'properties' => array( + 'DefaultValue' => array( + 'type' => 'string', + ), + 'SourceField' => array( + 'type' => 'string', + ), + 'FacetEnabled' => array( + 'type' => 'boolean', + ), + 'SearchEnabled' => array( + 'type' => 'boolean', + ), + 'ReturnEnabled' => array( + 'type' => 'boolean', + ), + 'SortEnabled' => array( + 'type' => 'boolean', + ), + ), + ), + 'TextOptions' => array( + 'type' => 'object', + 'properties' => array( + 'DefaultValue' => array( + 'type' => 'string', + ), + 'SourceField' => array( + 'type' => 'string', + ), + 'ReturnEnabled' => array( + 'type' => 'boolean', + ), + 'SortEnabled' => array( + 'type' => 'boolean', + ), + 'HighlightEnabled' => array( + 'type' => 'boolean', + ), + 'AnalysisScheme' => array( + 'type' => 'string', + ), + ), + ), + 'DateOptions' => array( + 'type' => 'object', + 'properties' => array( + 'DefaultValue' => array( + 'type' => 'string', + ), + 'SourceField' => array( + 'type' => 'string', + ), + 'FacetEnabled' => array( + 'type' => 'boolean', + ), + 'SearchEnabled' => array( + 'type' => 'boolean', + ), + 'ReturnEnabled' => array( + 'type' => 'boolean', + ), + 'SortEnabled' => array( + 'type' => 'boolean', + ), + ), + ), + 'LatLonOptions' => array( + 'type' => 'object', + 'properties' => array( + 'DefaultValue' => array( + 'type' => 'string', + ), + 'SourceField' => array( + 'type' => 'string', + ), + 'FacetEnabled' => array( + 'type' => 'boolean', + ), + 'SearchEnabled' => array( + 'type' => 'boolean', + ), + 'ReturnEnabled' => array( + 'type' => 'boolean', + ), + 'SortEnabled' => array( + 'type' => 'boolean', + ), + ), + ), + 'IntArrayOptions' => array( + 'type' => 'object', + 'properties' => array( + 'DefaultValue' => array( + 'type' => 'numeric', + ), + 'SourceFields' => array( + 'type' => 'string', + ), + 'FacetEnabled' => array( + 'type' => 'boolean', + ), + 'SearchEnabled' => array( + 'type' => 'boolean', + ), + 'ReturnEnabled' => array( + 'type' => 'boolean', + ), + ), + ), + 'DoubleArrayOptions' => array( + 'type' => 'object', + 'properties' => array( + 'DefaultValue' => array( + 'type' => 'numeric', + ), + 'SourceFields' => array( + 'type' => 'string', + ), + 'FacetEnabled' => array( + 'type' => 'boolean', + ), + 'SearchEnabled' => array( + 'type' => 'boolean', + ), + 'ReturnEnabled' => array( + 'type' => 'boolean', + ), + ), + ), + 'LiteralArrayOptions' => array( + 'type' => 'object', + 'properties' => array( + 'DefaultValue' => array( + 'type' => 'string', + ), + 'SourceFields' => array( + 'type' => 'string', + ), + 'FacetEnabled' => array( + 'type' => 'boolean', + ), + 'SearchEnabled' => array( + 'type' => 'boolean', + ), + 'ReturnEnabled' => array( + 'type' => 'boolean', + ), + ), + ), + 'TextArrayOptions' => array( + 'type' => 'object', + 'properties' => array( + 'DefaultValue' => array( + 'type' => 'string', + ), + 'SourceFields' => array( + 'type' => 'string', + ), + 'ReturnEnabled' => array( + 'type' => 'boolean', + ), + 'HighlightEnabled' => array( + 'type' => 'boolean', + ), + 'AnalysisScheme' => array( + 'type' => 'string', + ), + ), + ), + 'DateArrayOptions' => array( + 'type' => 'object', + 'properties' => array( + 'DefaultValue' => array( + 'type' => 'string', + ), + 'SourceFields' => array( + 'type' => 'string', + ), + 'FacetEnabled' => array( + 'type' => 'boolean', + ), + 'SearchEnabled' => array( + 'type' => 'boolean', + ), + 'ReturnEnabled' => array( + 'type' => 'boolean', + ), + ), + ), + ), + ), + 'Status' => array( + 'type' => 'object', + 'properties' => array( + 'CreationDate' => array( + 'type' => 'string', + ), + 'UpdateDate' => array( + 'type' => 'string', + ), + 'UpdateVersion' => array( + 'type' => 'numeric', + ), + 'State' => array( + 'type' => 'string', + ), + 'PendingDeletion' => array( + 'type' => 'boolean', + ), + ), + ), + ), + ), + ), + ), + 'DefineSuggesterResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'Suggester' => array( + 'type' => 'object', + 'location' => 'xml', + 'properties' => array( + 'Options' => array( + 'type' => 'object', + 'properties' => array( + 'SuggesterName' => array( + 'type' => 'string', + ), + 'DocumentSuggesterOptions' => array( + 'type' => 'object', + 'properties' => array( + 'SourceField' => array( + 'type' => 'string', + ), + 'FuzzyMatching' => array( + 'type' => 'string', + ), + 'SortExpression' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + 'Status' => array( + 'type' => 'object', + 'properties' => array( + 'CreationDate' => array( + 'type' => 'string', + ), + 'UpdateDate' => array( + 'type' => 'string', + ), + 'UpdateVersion' => array( + 'type' => 'numeric', + ), + 'State' => array( + 'type' => 'string', + ), + 'PendingDeletion' => array( + 'type' => 'boolean', + ), + ), + ), + ), + ), + ), + ), + 'DeleteAnalysisSchemeResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'AnalysisScheme' => array( + 'type' => 'object', + 'location' => 'xml', + 'properties' => array( + 'Options' => array( + 'type' => 'object', + 'properties' => array( + 'AnalysisSchemeName' => array( + 'type' => 'string', + ), + 'AnalysisSchemeLanguage' => array( + 'type' => 'string', + ), + 'AnalysisOptions' => array( + 'type' => 'object', + 'properties' => array( + 'Synonyms' => array( + 'type' => 'string', + ), + 'Stopwords' => array( + 'type' => 'string', + ), + 'StemmingDictionary' => array( + 'type' => 'string', + ), + 'JapaneseTokenizationDictionary' => array( + 'type' => 'string', + ), + 'AlgorithmicStemming' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + 'Status' => array( + 'type' => 'object', + 'properties' => array( + 'CreationDate' => array( + 'type' => 'string', + ), + 'UpdateDate' => array( + 'type' => 'string', + ), + 'UpdateVersion' => array( + 'type' => 'numeric', + ), + 'State' => array( + 'type' => 'string', + ), + 'PendingDeletion' => array( + 'type' => 'boolean', + ), + ), + ), + ), + ), + ), + ), + 'DeleteDomainResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'DomainStatus' => array( + 'type' => 'object', + 'location' => 'xml', + 'properties' => array( + 'DomainId' => array( + 'type' => 'string', + ), + 'DomainName' => array( + 'type' => 'string', + ), + 'ARN' => array( + 'type' => 'string', + ), + 'Created' => array( + 'type' => 'boolean', + ), + 'Deleted' => array( + 'type' => 'boolean', + ), + 'DocService' => array( + 'type' => 'object', + 'properties' => array( + 'Endpoint' => array( + 'type' => 'string', + ), + ), + ), + 'SearchService' => array( + 'type' => 'object', + 'properties' => array( + 'Endpoint' => array( + 'type' => 'string', + ), + ), + ), + 'RequiresIndexDocuments' => array( + 'type' => 'boolean', + ), + 'Processing' => array( + 'type' => 'boolean', + ), + 'SearchInstanceType' => array( + 'type' => 'string', + ), + 'SearchPartitionCount' => array( + 'type' => 'numeric', + ), + 'SearchInstanceCount' => array( + 'type' => 'numeric', + ), + 'Limits' => array( + 'type' => 'object', + 'properties' => array( + 'MaximumReplicationCount' => array( + 'type' => 'numeric', + ), + 'MaximumPartitionCount' => array( + 'type' => 'numeric', + ), + ), + ), + ), + ), + ), + ), + 'DeleteExpressionResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'Expression' => array( + 'type' => 'object', + 'location' => 'xml', + 'properties' => array( + 'Options' => array( + 'type' => 'object', + 'properties' => array( + 'ExpressionName' => array( + 'type' => 'string', + ), + 'ExpressionValue' => array( + 'type' => 'string', + ), + ), + ), + 'Status' => array( + 'type' => 'object', + 'properties' => array( + 'CreationDate' => array( + 'type' => 'string', + ), + 'UpdateDate' => array( + 'type' => 'string', + ), + 'UpdateVersion' => array( + 'type' => 'numeric', + ), + 'State' => array( + 'type' => 'string', + ), + 'PendingDeletion' => array( + 'type' => 'boolean', + ), + ), + ), + ), + ), + ), + ), + 'DeleteIndexFieldResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'IndexField' => array( + 'type' => 'object', + 'location' => 'xml', + 'properties' => array( + 'Options' => array( + 'type' => 'object', + 'properties' => array( + 'IndexFieldName' => array( + 'type' => 'string', + ), + 'IndexFieldType' => array( + 'type' => 'string', + ), + 'IntOptions' => array( + 'type' => 'object', + 'properties' => array( + 'DefaultValue' => array( + 'type' => 'numeric', + ), + 'SourceField' => array( + 'type' => 'string', + ), + 'FacetEnabled' => array( + 'type' => 'boolean', + ), + 'SearchEnabled' => array( + 'type' => 'boolean', + ), + 'ReturnEnabled' => array( + 'type' => 'boolean', + ), + 'SortEnabled' => array( + 'type' => 'boolean', + ), + ), + ), + 'DoubleOptions' => array( + 'type' => 'object', + 'properties' => array( + 'DefaultValue' => array( + 'type' => 'numeric', + ), + 'SourceField' => array( + 'type' => 'string', + ), + 'FacetEnabled' => array( + 'type' => 'boolean', + ), + 'SearchEnabled' => array( + 'type' => 'boolean', + ), + 'ReturnEnabled' => array( + 'type' => 'boolean', + ), + 'SortEnabled' => array( + 'type' => 'boolean', + ), + ), + ), + 'LiteralOptions' => array( + 'type' => 'object', + 'properties' => array( + 'DefaultValue' => array( + 'type' => 'string', + ), + 'SourceField' => array( + 'type' => 'string', + ), + 'FacetEnabled' => array( + 'type' => 'boolean', + ), + 'SearchEnabled' => array( + 'type' => 'boolean', + ), + 'ReturnEnabled' => array( + 'type' => 'boolean', + ), + 'SortEnabled' => array( + 'type' => 'boolean', + ), + ), + ), + 'TextOptions' => array( + 'type' => 'object', + 'properties' => array( + 'DefaultValue' => array( + 'type' => 'string', + ), + 'SourceField' => array( + 'type' => 'string', + ), + 'ReturnEnabled' => array( + 'type' => 'boolean', + ), + 'SortEnabled' => array( + 'type' => 'boolean', + ), + 'HighlightEnabled' => array( + 'type' => 'boolean', + ), + 'AnalysisScheme' => array( + 'type' => 'string', + ), + ), + ), + 'DateOptions' => array( + 'type' => 'object', + 'properties' => array( + 'DefaultValue' => array( + 'type' => 'string', + ), + 'SourceField' => array( + 'type' => 'string', + ), + 'FacetEnabled' => array( + 'type' => 'boolean', + ), + 'SearchEnabled' => array( + 'type' => 'boolean', + ), + 'ReturnEnabled' => array( + 'type' => 'boolean', + ), + 'SortEnabled' => array( + 'type' => 'boolean', + ), + ), + ), + 'LatLonOptions' => array( + 'type' => 'object', + 'properties' => array( + 'DefaultValue' => array( + 'type' => 'string', + ), + 'SourceField' => array( + 'type' => 'string', + ), + 'FacetEnabled' => array( + 'type' => 'boolean', + ), + 'SearchEnabled' => array( + 'type' => 'boolean', + ), + 'ReturnEnabled' => array( + 'type' => 'boolean', + ), + 'SortEnabled' => array( + 'type' => 'boolean', + ), + ), + ), + 'IntArrayOptions' => array( + 'type' => 'object', + 'properties' => array( + 'DefaultValue' => array( + 'type' => 'numeric', + ), + 'SourceFields' => array( + 'type' => 'string', + ), + 'FacetEnabled' => array( + 'type' => 'boolean', + ), + 'SearchEnabled' => array( + 'type' => 'boolean', + ), + 'ReturnEnabled' => array( + 'type' => 'boolean', + ), + ), + ), + 'DoubleArrayOptions' => array( + 'type' => 'object', + 'properties' => array( + 'DefaultValue' => array( + 'type' => 'numeric', + ), + 'SourceFields' => array( + 'type' => 'string', + ), + 'FacetEnabled' => array( + 'type' => 'boolean', + ), + 'SearchEnabled' => array( + 'type' => 'boolean', + ), + 'ReturnEnabled' => array( + 'type' => 'boolean', + ), + ), + ), + 'LiteralArrayOptions' => array( + 'type' => 'object', + 'properties' => array( + 'DefaultValue' => array( + 'type' => 'string', + ), + 'SourceFields' => array( + 'type' => 'string', + ), + 'FacetEnabled' => array( + 'type' => 'boolean', + ), + 'SearchEnabled' => array( + 'type' => 'boolean', + ), + 'ReturnEnabled' => array( + 'type' => 'boolean', + ), + ), + ), + 'TextArrayOptions' => array( + 'type' => 'object', + 'properties' => array( + 'DefaultValue' => array( + 'type' => 'string', + ), + 'SourceFields' => array( + 'type' => 'string', + ), + 'ReturnEnabled' => array( + 'type' => 'boolean', + ), + 'HighlightEnabled' => array( + 'type' => 'boolean', + ), + 'AnalysisScheme' => array( + 'type' => 'string', + ), + ), + ), + 'DateArrayOptions' => array( + 'type' => 'object', + 'properties' => array( + 'DefaultValue' => array( + 'type' => 'string', + ), + 'SourceFields' => array( + 'type' => 'string', + ), + 'FacetEnabled' => array( + 'type' => 'boolean', + ), + 'SearchEnabled' => array( + 'type' => 'boolean', + ), + 'ReturnEnabled' => array( + 'type' => 'boolean', + ), + ), + ), + ), + ), + 'Status' => array( + 'type' => 'object', + 'properties' => array( + 'CreationDate' => array( + 'type' => 'string', + ), + 'UpdateDate' => array( + 'type' => 'string', + ), + 'UpdateVersion' => array( + 'type' => 'numeric', + ), + 'State' => array( + 'type' => 'string', + ), + 'PendingDeletion' => array( + 'type' => 'boolean', + ), + ), + ), + ), + ), + ), + ), + 'DeleteSuggesterResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'Suggester' => array( + 'type' => 'object', + 'location' => 'xml', + 'properties' => array( + 'Options' => array( + 'type' => 'object', + 'properties' => array( + 'SuggesterName' => array( + 'type' => 'string', + ), + 'DocumentSuggesterOptions' => array( + 'type' => 'object', + 'properties' => array( + 'SourceField' => array( + 'type' => 'string', + ), + 'FuzzyMatching' => array( + 'type' => 'string', + ), + 'SortExpression' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + 'Status' => array( + 'type' => 'object', + 'properties' => array( + 'CreationDate' => array( + 'type' => 'string', + ), + 'UpdateDate' => array( + 'type' => 'string', + ), + 'UpdateVersion' => array( + 'type' => 'numeric', + ), + 'State' => array( + 'type' => 'string', + ), + 'PendingDeletion' => array( + 'type' => 'boolean', + ), + ), + ), + ), + ), + ), + ), + 'DescribeAnalysisSchemesResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'AnalysisSchemes' => array( + 'type' => 'array', + 'location' => 'xml', + 'items' => array( + 'name' => 'AnalysisSchemeStatus', + 'type' => 'object', + 'sentAs' => 'member', + 'properties' => array( + 'Options' => array( + 'type' => 'object', + 'properties' => array( + 'AnalysisSchemeName' => array( + 'type' => 'string', + ), + 'AnalysisSchemeLanguage' => array( + 'type' => 'string', + ), + 'AnalysisOptions' => array( + 'type' => 'object', + 'properties' => array( + 'Synonyms' => array( + 'type' => 'string', + ), + 'Stopwords' => array( + 'type' => 'string', + ), + 'StemmingDictionary' => array( + 'type' => 'string', + ), + 'JapaneseTokenizationDictionary' => array( + 'type' => 'string', + ), + 'AlgorithmicStemming' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + 'Status' => array( + 'type' => 'object', + 'properties' => array( + 'CreationDate' => array( + 'type' => 'string', + ), + 'UpdateDate' => array( + 'type' => 'string', + ), + 'UpdateVersion' => array( + 'type' => 'numeric', + ), + 'State' => array( + 'type' => 'string', + ), + 'PendingDeletion' => array( + 'type' => 'boolean', + ), + ), + ), + ), + ), + ), + ), + ), + 'DescribeAvailabilityOptionsResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'AvailabilityOptions' => array( + 'type' => 'object', + 'location' => 'xml', + 'properties' => array( + 'Options' => array( + 'type' => 'boolean', + ), + 'Status' => array( + 'type' => 'object', + 'properties' => array( + 'CreationDate' => array( + 'type' => 'string', + ), + 'UpdateDate' => array( + 'type' => 'string', + ), + 'UpdateVersion' => array( + 'type' => 'numeric', + ), + 'State' => array( + 'type' => 'string', + ), + 'PendingDeletion' => array( + 'type' => 'boolean', + ), + ), + ), + ), + ), + ), + ), + 'DescribeDomainsResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'DomainStatusList' => array( + 'type' => 'array', + 'location' => 'xml', + 'items' => array( + 'name' => 'DomainStatus', + 'type' => 'object', + 'sentAs' => 'member', + 'properties' => array( + 'DomainId' => array( + 'type' => 'string', + ), + 'DomainName' => array( + 'type' => 'string', + ), + 'ARN' => array( + 'type' => 'string', + ), + 'Created' => array( + 'type' => 'boolean', + ), + 'Deleted' => array( + 'type' => 'boolean', + ), + 'DocService' => array( + 'type' => 'object', + 'properties' => array( + 'Endpoint' => array( + 'type' => 'string', + ), + ), + ), + 'SearchService' => array( + 'type' => 'object', + 'properties' => array( + 'Endpoint' => array( + 'type' => 'string', + ), + ), + ), + 'RequiresIndexDocuments' => array( + 'type' => 'boolean', + ), + 'Processing' => array( + 'type' => 'boolean', + ), + 'SearchInstanceType' => array( + 'type' => 'string', + ), + 'SearchPartitionCount' => array( + 'type' => 'numeric', + ), + 'SearchInstanceCount' => array( + 'type' => 'numeric', + ), + 'Limits' => array( + 'type' => 'object', + 'properties' => array( + 'MaximumReplicationCount' => array( + 'type' => 'numeric', + ), + 'MaximumPartitionCount' => array( + 'type' => 'numeric', + ), + ), + ), + ), + ), + ), + ), + ), + 'DescribeExpressionsResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'Expressions' => array( + 'type' => 'array', + 'location' => 'xml', + 'items' => array( + 'name' => 'ExpressionStatus', + 'type' => 'object', + 'sentAs' => 'member', + 'properties' => array( + 'Options' => array( + 'type' => 'object', + 'properties' => array( + 'ExpressionName' => array( + 'type' => 'string', + ), + 'ExpressionValue' => array( + 'type' => 'string', + ), + ), + ), + 'Status' => array( + 'type' => 'object', + 'properties' => array( + 'CreationDate' => array( + 'type' => 'string', + ), + 'UpdateDate' => array( + 'type' => 'string', + ), + 'UpdateVersion' => array( + 'type' => 'numeric', + ), + 'State' => array( + 'type' => 'string', + ), + 'PendingDeletion' => array( + 'type' => 'boolean', + ), + ), + ), + ), + ), + ), + ), + ), + 'DescribeIndexFieldsResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'IndexFields' => array( + 'type' => 'array', + 'location' => 'xml', + 'items' => array( + 'name' => 'IndexFieldStatus', + 'type' => 'object', + 'sentAs' => 'member', + 'properties' => array( + 'Options' => array( + 'type' => 'object', + 'properties' => array( + 'IndexFieldName' => array( + 'type' => 'string', + ), + 'IndexFieldType' => array( + 'type' => 'string', + ), + 'IntOptions' => array( + 'type' => 'object', + 'properties' => array( + 'DefaultValue' => array( + 'type' => 'numeric', + ), + 'SourceField' => array( + 'type' => 'string', + ), + 'FacetEnabled' => array( + 'type' => 'boolean', + ), + 'SearchEnabled' => array( + 'type' => 'boolean', + ), + 'ReturnEnabled' => array( + 'type' => 'boolean', + ), + 'SortEnabled' => array( + 'type' => 'boolean', + ), + ), + ), + 'DoubleOptions' => array( + 'type' => 'object', + 'properties' => array( + 'DefaultValue' => array( + 'type' => 'numeric', + ), + 'SourceField' => array( + 'type' => 'string', + ), + 'FacetEnabled' => array( + 'type' => 'boolean', + ), + 'SearchEnabled' => array( + 'type' => 'boolean', + ), + 'ReturnEnabled' => array( + 'type' => 'boolean', + ), + 'SortEnabled' => array( + 'type' => 'boolean', + ), + ), + ), + 'LiteralOptions' => array( + 'type' => 'object', + 'properties' => array( + 'DefaultValue' => array( + 'type' => 'string', + ), + 'SourceField' => array( + 'type' => 'string', + ), + 'FacetEnabled' => array( + 'type' => 'boolean', + ), + 'SearchEnabled' => array( + 'type' => 'boolean', + ), + 'ReturnEnabled' => array( + 'type' => 'boolean', + ), + 'SortEnabled' => array( + 'type' => 'boolean', + ), + ), + ), + 'TextOptions' => array( + 'type' => 'object', + 'properties' => array( + 'DefaultValue' => array( + 'type' => 'string', + ), + 'SourceField' => array( + 'type' => 'string', + ), + 'ReturnEnabled' => array( + 'type' => 'boolean', + ), + 'SortEnabled' => array( + 'type' => 'boolean', + ), + 'HighlightEnabled' => array( + 'type' => 'boolean', + ), + 'AnalysisScheme' => array( + 'type' => 'string', + ), + ), + ), + 'DateOptions' => array( + 'type' => 'object', + 'properties' => array( + 'DefaultValue' => array( + 'type' => 'string', + ), + 'SourceField' => array( + 'type' => 'string', + ), + 'FacetEnabled' => array( + 'type' => 'boolean', + ), + 'SearchEnabled' => array( + 'type' => 'boolean', + ), + 'ReturnEnabled' => array( + 'type' => 'boolean', + ), + 'SortEnabled' => array( + 'type' => 'boolean', + ), + ), + ), + 'LatLonOptions' => array( + 'type' => 'object', + 'properties' => array( + 'DefaultValue' => array( + 'type' => 'string', + ), + 'SourceField' => array( + 'type' => 'string', + ), + 'FacetEnabled' => array( + 'type' => 'boolean', + ), + 'SearchEnabled' => array( + 'type' => 'boolean', + ), + 'ReturnEnabled' => array( + 'type' => 'boolean', + ), + 'SortEnabled' => array( + 'type' => 'boolean', + ), + ), + ), + 'IntArrayOptions' => array( + 'type' => 'object', + 'properties' => array( + 'DefaultValue' => array( + 'type' => 'numeric', + ), + 'SourceFields' => array( + 'type' => 'string', + ), + 'FacetEnabled' => array( + 'type' => 'boolean', + ), + 'SearchEnabled' => array( + 'type' => 'boolean', + ), + 'ReturnEnabled' => array( + 'type' => 'boolean', + ), + ), + ), + 'DoubleArrayOptions' => array( + 'type' => 'object', + 'properties' => array( + 'DefaultValue' => array( + 'type' => 'numeric', + ), + 'SourceFields' => array( + 'type' => 'string', + ), + 'FacetEnabled' => array( + 'type' => 'boolean', + ), + 'SearchEnabled' => array( + 'type' => 'boolean', + ), + 'ReturnEnabled' => array( + 'type' => 'boolean', + ), + ), + ), + 'LiteralArrayOptions' => array( + 'type' => 'object', + 'properties' => array( + 'DefaultValue' => array( + 'type' => 'string', + ), + 'SourceFields' => array( + 'type' => 'string', + ), + 'FacetEnabled' => array( + 'type' => 'boolean', + ), + 'SearchEnabled' => array( + 'type' => 'boolean', + ), + 'ReturnEnabled' => array( + 'type' => 'boolean', + ), + ), + ), + 'TextArrayOptions' => array( + 'type' => 'object', + 'properties' => array( + 'DefaultValue' => array( + 'type' => 'string', + ), + 'SourceFields' => array( + 'type' => 'string', + ), + 'ReturnEnabled' => array( + 'type' => 'boolean', + ), + 'HighlightEnabled' => array( + 'type' => 'boolean', + ), + 'AnalysisScheme' => array( + 'type' => 'string', + ), + ), + ), + 'DateArrayOptions' => array( + 'type' => 'object', + 'properties' => array( + 'DefaultValue' => array( + 'type' => 'string', + ), + 'SourceFields' => array( + 'type' => 'string', + ), + 'FacetEnabled' => array( + 'type' => 'boolean', + ), + 'SearchEnabled' => array( + 'type' => 'boolean', + ), + 'ReturnEnabled' => array( + 'type' => 'boolean', + ), + ), + ), + ), + ), + 'Status' => array( + 'type' => 'object', + 'properties' => array( + 'CreationDate' => array( + 'type' => 'string', + ), + 'UpdateDate' => array( + 'type' => 'string', + ), + 'UpdateVersion' => array( + 'type' => 'numeric', + ), + 'State' => array( + 'type' => 'string', + ), + 'PendingDeletion' => array( + 'type' => 'boolean', + ), + ), + ), + ), + ), + ), + ), + ), + 'DescribeScalingParametersResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'ScalingParameters' => array( + 'type' => 'object', + 'location' => 'xml', + 'properties' => array( + 'Options' => array( + 'type' => 'object', + 'properties' => array( + 'DesiredInstanceType' => array( + 'type' => 'string', + ), + 'DesiredReplicationCount' => array( + 'type' => 'numeric', + ), + 'DesiredPartitionCount' => array( + 'type' => 'numeric', + ), + ), + ), + 'Status' => array( + 'type' => 'object', + 'properties' => array( + 'CreationDate' => array( + 'type' => 'string', + ), + 'UpdateDate' => array( + 'type' => 'string', + ), + 'UpdateVersion' => array( + 'type' => 'numeric', + ), + 'State' => array( + 'type' => 'string', + ), + 'PendingDeletion' => array( + 'type' => 'boolean', + ), + ), + ), + ), + ), + ), + ), + 'DescribeServiceAccessPoliciesResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'AccessPolicies' => array( + 'type' => 'object', + 'location' => 'xml', + 'properties' => array( + 'Options' => array( + 'type' => 'string', + ), + 'Status' => array( + 'type' => 'object', + 'properties' => array( + 'CreationDate' => array( + 'type' => 'string', + ), + 'UpdateDate' => array( + 'type' => 'string', + ), + 'UpdateVersion' => array( + 'type' => 'numeric', + ), + 'State' => array( + 'type' => 'string', + ), + 'PendingDeletion' => array( + 'type' => 'boolean', + ), + ), + ), + ), + ), + ), + ), + 'DescribeSuggestersResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'Suggesters' => array( + 'type' => 'array', + 'location' => 'xml', + 'items' => array( + 'name' => 'SuggesterStatus', + 'type' => 'object', + 'sentAs' => 'member', + 'properties' => array( + 'Options' => array( + 'type' => 'object', + 'properties' => array( + 'SuggesterName' => array( + 'type' => 'string', + ), + 'DocumentSuggesterOptions' => array( + 'type' => 'object', + 'properties' => array( + 'SourceField' => array( + 'type' => 'string', + ), + 'FuzzyMatching' => array( + 'type' => 'string', + ), + 'SortExpression' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + 'Status' => array( + 'type' => 'object', + 'properties' => array( + 'CreationDate' => array( + 'type' => 'string', + ), + 'UpdateDate' => array( + 'type' => 'string', + ), + 'UpdateVersion' => array( + 'type' => 'numeric', + ), + 'State' => array( + 'type' => 'string', + ), + 'PendingDeletion' => array( + 'type' => 'boolean', + ), + ), + ), + ), + ), + ), + ), + ), + 'IndexDocumentsResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'FieldNames' => array( + 'type' => 'array', + 'location' => 'xml', + 'items' => array( + 'name' => 'FieldName', + 'type' => 'string', + 'sentAs' => 'member', + ), + ), + ), + ), + 'ListDomainNamesResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'DomainNames' => array( + 'type' => 'array', + 'location' => 'xml', + 'filters' => array( + array( + 'method' => 'Aws\\Common\\Command\\XmlResponseLocationVisitor::xmlMap', + 'args' => array( + '@value', + 'entry', + 'key', + 'value', + ), + ), + ), + 'items' => array( + 'name' => 'entry', + 'type' => 'object', + 'sentAs' => 'entry', + 'additionalProperties' => true, + 'properties' => array( + 'key' => array( + 'type' => 'string', + ), + 'value' => array( + 'type' => 'string', + ), + ), + ), + 'additionalProperties' => false, + ), + ), + ), + 'UpdateAvailabilityOptionsResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'AvailabilityOptions' => array( + 'type' => 'object', + 'location' => 'xml', + 'properties' => array( + 'Options' => array( + 'type' => 'boolean', + ), + 'Status' => array( + 'type' => 'object', + 'properties' => array( + 'CreationDate' => array( + 'type' => 'string', + ), + 'UpdateDate' => array( + 'type' => 'string', + ), + 'UpdateVersion' => array( + 'type' => 'numeric', + ), + 'State' => array( + 'type' => 'string', + ), + 'PendingDeletion' => array( + 'type' => 'boolean', + ), + ), + ), + ), + ), + ), + ), + 'UpdateScalingParametersResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'ScalingParameters' => array( + 'type' => 'object', + 'location' => 'xml', + 'properties' => array( + 'Options' => array( + 'type' => 'object', + 'properties' => array( + 'DesiredInstanceType' => array( + 'type' => 'string', + ), + 'DesiredReplicationCount' => array( + 'type' => 'numeric', + ), + 'DesiredPartitionCount' => array( + 'type' => 'numeric', + ), + ), + ), + 'Status' => array( + 'type' => 'object', + 'properties' => array( + 'CreationDate' => array( + 'type' => 'string', + ), + 'UpdateDate' => array( + 'type' => 'string', + ), + 'UpdateVersion' => array( + 'type' => 'numeric', + ), + 'State' => array( + 'type' => 'string', + ), + 'PendingDeletion' => array( + 'type' => 'boolean', + ), + ), + ), + ), + ), + ), + ), + 'UpdateServiceAccessPoliciesResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'AccessPolicies' => array( + 'type' => 'object', + 'location' => 'xml', + 'properties' => array( + 'Options' => array( + 'type' => 'string', + ), + 'Status' => array( + 'type' => 'object', + 'properties' => array( + 'CreationDate' => array( + 'type' => 'string', + ), + 'UpdateDate' => array( + 'type' => 'string', + ), + 'UpdateVersion' => array( + 'type' => 'numeric', + ), + 'State' => array( + 'type' => 'string', + ), + 'PendingDeletion' => array( + 'type' => 'boolean', + ), + ), + ), + ), + ), + ), + ), + ), + 'iterators' => array( + 'DescribeAnalysisSchemes' => array( + 'result_key' => 'AnalysisSchemes', + ), + 'DescribeDomains' => array( + 'result_key' => 'DomainStatusList', + ), + 'DescribeExpressions' => array( + 'result_key' => 'Expressions', + ), + 'DescribeIndexFields' => array( + 'result_key' => 'IndexFields', + ), + 'DescribeSuggesters' => array( + 'result_key' => 'Suggesters', + ), + ), +); diff --git a/inc/aws-sdk/Aws/CloudSearchDomain/CloudSearchDomainClient.php b/inc/aws-sdk/Aws/CloudSearchDomain/CloudSearchDomainClient.php new file mode 100644 index 0000000..31296a7 --- /dev/null +++ b/inc/aws-sdk/Aws/CloudSearchDomain/CloudSearchDomainClient.php @@ -0,0 +1,54 @@ +setConfig($config) + ->setConfigDefaults(array( + Options::VERSION => self::LATEST_API_VERSION, + Options::SERVICE_DESCRIPTION => __DIR__ . '/Resources/cloudsearchdomain-%s.php' + )) + ->build(); + } + + /** + * @internal + * @throws BadMethodCallException Do not call this method. + */ + public function setRegion($region) + { + throw new BadMethodCallException('You cannot change the region of a CloudSearchDomain client.'); + } +} diff --git a/inc/aws-sdk/Aws/CloudSearchDomain/CloudSearchDomainClientBuilder.php b/inc/aws-sdk/Aws/CloudSearchDomain/CloudSearchDomainClientBuilder.php new file mode 100644 index 0000000..9de513c --- /dev/null +++ b/inc/aws-sdk/Aws/CloudSearchDomain/CloudSearchDomainClientBuilder.php @@ -0,0 +1,122 @@ + 'https', + ); + + public function build() + { + // Resolve configuration + $config = Collection::fromConfig( + $this->config, + array_merge(self::$commonConfigDefaults, $this->configDefaults), + $this->configRequirements + ); + + $endpoint = $config['endpoint'] ?: $config[Options::BASE_URL]; + + // Make sure endpoint is correctly set + if (!$endpoint) { + throw new InvalidArgumentException('You must provide the endpoint for the CloudSearch domain.'); + } + + if (strpos($endpoint, 'http') !== 0) { + $endpoint = $config[Options::SCHEME] . '://' . $endpoint; + $config['endpoint'] = $endpoint; + $config[Options::BASE_URL] = $endpoint; + } + + // Determine the region from the endpoint + $endpoint = Url::factory($endpoint); + list(,$region) = explode('.', $endpoint->getHost()); + $config[Options::REGION] = $config[Options::SIGNATURE_REGION] = $region; + + // Create dependencies + $exceptionParser = new JsonQueryExceptionParser(); + $description = ServiceDescription::factory(sprintf( + $config->get(Options::SERVICE_DESCRIPTION), + $config->get(Options::VERSION) + )); + $signature = $this->getSignature($description, $config); + $credentials = $this->getCredentials($config); + + // Resolve backoff strategy + $backoff = $config->get(Options::BACKOFF); + if ($backoff === null) { + $backoff = new BackoffPlugin( + // Retry failed requests up to 3 times if it is determined that the request can be retried + new TruncatedBackoffStrategy(3, + // Retry failed requests with 400-level responses due to throttling + new ThrottlingErrorChecker($exceptionParser, + // Retry failed requests due to transient network or cURL problems + new CurlBackoffStrategy(null, + // Retry failed requests with 500-level responses + new HttpBackoffStrategy(array(500, 503, 504, 509), + new ExponentialBackoffStrategy() + ) + ) + ) + ) + ); + $config->set(Options::BACKOFF, $backoff); + } + if ($backoff) { + $this->addBackoffLogger($backoff, $config); + } + + // Create client + $client = new CloudSearchDomainClient($credentials, $signature, $config); + $client->setDescription($description); + + // Add exception marshaling so that more descriptive exception are thrown + $client->addSubscriber(new ExceptionListener(new NamespaceExceptionFactory( + $exceptionParser, + __NAMESPACE__ . '\\Exception', + __NAMESPACE__ . '\\Exception\\CloudSearchDomainException' + ))); + + // Add the UserAgentPlugin to append to the User-Agent header of requests + $client->addSubscriber(new UserAgentListener); + + // Filters used for the cache plugin + $client->getConfig()->set( + 'params.cache.key_filter', + 'header=date,x-amz-date,x-amz-security-token,x-amzn-authorization' + ); + + // Disable parameter validation if needed + if ($config->get(Options::VALIDATION) === false) { + $params = $config->get('command.params') ?: array(); + $params['command.disable_validation'] = true; + $config->set('command.params', $params); + } + + return $client; + } +} diff --git a/inc/aws-sdk/Aws/CloudSearchDomain/Exception/CloudSearchDomainException.php b/inc/aws-sdk/Aws/CloudSearchDomain/Exception/CloudSearchDomainException.php new file mode 100644 index 0000000..009a001 --- /dev/null +++ b/inc/aws-sdk/Aws/CloudSearchDomain/Exception/CloudSearchDomainException.php @@ -0,0 +1,10 @@ + '2013-01-01', + 'endpointPrefix' => 'cloudsearchdomain', + 'serviceFullName' => 'Amazon CloudSearch Domain', + 'serviceType' => 'rest-json', + 'signatureVersion' => 'v4', + 'signingName' => 'cloudsearch', + 'namespace' => 'CloudSearchDomain', + 'operations' => array( + 'Search' => array( + 'httpMethod' => 'GET', + 'uri' => '/2013-01-01/search?format=sdk&pretty=true', + 'class' => 'Guzzle\\Service\\Command\\OperationCommand', + 'responseClass' => 'SearchResponse', + 'responseType' => 'model', + 'parameters' => array( + 'cursor' => array( + 'type' => 'string', + 'location' => 'query', + ), + 'expr' => array( + 'type' => 'string', + 'location' => 'query', + ), + 'facet' => array( + 'type' => 'string', + 'location' => 'query', + ), + 'filterQuery' => array( + 'type' => 'string', + 'location' => 'query', + 'sentAs' => 'fq', + ), + 'highlight' => array( + 'type' => 'string', + 'location' => 'query', + ), + 'partial' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'query', + ), + 'query' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'query', + 'sentAs' => 'q', + ), + 'queryOptions' => array( + 'type' => 'string', + 'location' => 'query', + 'sentAs' => 'q.options', + ), + 'queryParser' => array( + 'type' => 'string', + 'location' => 'query', + 'sentAs' => 'q.parser', + ), + 'return' => array( + 'type' => 'string', + 'location' => 'query', + ), + 'size' => array( + 'type' => 'numeric', + 'location' => 'query', + ), + 'sort' => array( + 'type' => 'string', + 'location' => 'query', + ), + 'start' => array( + 'type' => 'numeric', + 'location' => 'query', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'Information about any problems encountered while processing a search request.', + 'class' => 'SearchException', + ), + ), + ), + 'Suggest' => array( + 'httpMethod' => 'GET', + 'uri' => '/2013-01-01/suggest?format=sdk&pretty=true', + 'class' => 'Guzzle\\Service\\Command\\OperationCommand', + 'responseClass' => 'SuggestResponse', + 'responseType' => 'model', + 'parameters' => array( + 'query' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'query', + 'sentAs' => 'q', + ), + 'suggester' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'query', + ), + 'size' => array( + 'type' => 'numeric', + 'location' => 'query', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'Information about any problems encountered while processing a search request.', + 'class' => 'SearchException', + ), + ), + ), + 'UploadDocuments' => array( + 'httpMethod' => 'POST', + 'uri' => '/2013-01-01/documents/batch?format=sdk', + 'class' => 'Guzzle\\Service\\Command\\OperationCommand', + 'responseClass' => 'UploadDocumentsResponse', + 'responseType' => 'model', + 'parameters' => array( + 'documents' => array( + 'required' => true, + 'type' => array( + 'string', + 'object', + ), + 'location' => 'body', + ), + 'contentType' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'header', + 'sentAs' => 'Content-Type', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'Information about any problems encountered while processing an upload request.', + 'class' => 'DocumentServiceException', + ), + ), + ), + ), + 'models' => array( + 'SearchResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'status' => array( + 'type' => 'object', + 'location' => 'json', + 'properties' => array( + 'timems' => array( + 'type' => 'numeric', + ), + 'rid' => array( + 'type' => 'string', + ), + ), + ), + 'hits' => array( + 'type' => 'object', + 'location' => 'json', + 'properties' => array( + 'found' => array( + 'type' => 'numeric', + ), + 'start' => array( + 'type' => 'numeric', + ), + 'cursor' => array( + 'type' => 'string', + ), + 'hit' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Hit', + 'type' => 'object', + 'properties' => array( + 'id' => array( + 'type' => 'string', + ), + 'fields' => array( + 'type' => 'object', + 'additionalProperties' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'String', + 'type' => 'string', + ), + ), + ), + 'exprs' => array( + 'type' => 'object', + 'additionalProperties' => array( + 'type' => 'string', + ), + ), + 'highlights' => array( + 'type' => 'object', + 'additionalProperties' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + ), + 'facets' => array( + 'type' => 'object', + 'location' => 'json', + 'additionalProperties' => array( + 'type' => 'object', + 'properties' => array( + 'buckets' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Bucket', + 'type' => 'object', + 'properties' => array( + 'value' => array( + 'type' => 'string', + ), + 'count' => array( + 'type' => 'numeric', + ), + ), + ), + ), + ), + ), + ), + ), + ), + 'SuggestResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'status' => array( + 'type' => 'object', + 'location' => 'json', + 'properties' => array( + 'timems' => array( + 'type' => 'numeric', + ), + 'rid' => array( + 'type' => 'string', + ), + ), + ), + 'suggest' => array( + 'type' => 'object', + 'location' => 'json', + 'properties' => array( + 'query' => array( + 'type' => 'string', + ), + 'found' => array( + 'type' => 'numeric', + ), + 'suggestions' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'SuggestionMatch', + 'type' => 'object', + 'properties' => array( + 'suggestion' => array( + 'type' => 'string', + ), + 'score' => array( + 'type' => 'numeric', + ), + 'id' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + ), + ), + 'UploadDocumentsResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'status' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'adds' => array( + 'type' => 'numeric', + 'location' => 'json', + ), + 'deletes' => array( + 'type' => 'numeric', + 'location' => 'json', + ), + 'warnings' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'DocumentServiceWarning', + 'type' => 'object', + 'properties' => array( + 'message' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + ), +); diff --git a/inc/aws-sdk/Aws/CloudTrail/CloudTrailClient.php b/inc/aws-sdk/Aws/CloudTrail/CloudTrailClient.php index bb24d80..efa3dc3 100755 --- a/inc/aws-sdk/Aws/CloudTrail/CloudTrailClient.php +++ b/inc/aws-sdk/Aws/CloudTrail/CloudTrailClient.php @@ -22,6 +22,7 @@ use Aws\Common\Enum\ClientOptions as Options; use Aws\Common\Exception\Parser\JsonQueryExceptionParser; use Guzzle\Common\Collection; use Guzzle\Service\Resource\Model; +use Guzzle\Service\Resource\ResourceIteratorInterface; /** * Client to interact with AWS CloudTrail @@ -30,13 +31,14 @@ use Guzzle\Service\Resource\Model; * @method Model deleteTrail(array $args = array()) {@command CloudTrail DeleteTrail} * @method Model describeTrails(array $args = array()) {@command CloudTrail DescribeTrails} * @method Model getTrailStatus(array $args = array()) {@command CloudTrail GetTrailStatus} + * @method Model lookupEvents(array $args = array()) {@command CloudTrail LookupEvents} * @method Model startLogging(array $args = array()) {@command CloudTrail StartLogging} * @method Model stopLogging(array $args = array()) {@command CloudTrail StopLogging} * @method Model updateTrail(array $args = array()) {@command CloudTrail UpdateTrail} * @method ResourceIteratorInterface getDescribeTrailsIterator(array $args = array()) The input array uses the parameters of the DescribeTrails operation * - * @link http://docs.aws.amazon.com/aws-sdk-php/guide/latest/service-cloudtrail.html User guide - * @link http://docs.aws.amazon.com/aws-sdk-php/latest/class-Aws.CloudTrail.CloudTrailClient.html API docs + * @link http://docs.aws.amazon.com/aws-sdk-php/v2/guide/service-cloudtrail.html User guide + * @link http://docs.aws.amazon.com/aws-sdk-php/v2/api/class-Aws.CloudTrail.CloudTrailClient.html API docs */ class CloudTrailClient extends AbstractClient { @@ -48,7 +50,7 @@ class CloudTrailClient extends AbstractClient * @param array|Collection $config Client configuration data * * @return self - * @see \Aws\Common\Client\DefaultClient for a list of available configuration options + * @link http://docs.aws.amazon.com/aws-sdk-php/v2/guide/configuration.html#client-configuration-options */ public static function factory($config = array()) { diff --git a/inc/aws-sdk/Aws/CloudTrail/Exception/InsufficientS3BucketPolicyException.php b/inc/aws-sdk/Aws/CloudTrail/Exception/InsufficientS3BucketPolicyException.php index dc32493..a39fbed 100755 --- a/inc/aws-sdk/Aws/CloudTrail/Exception/InsufficientS3BucketPolicyException.php +++ b/inc/aws-sdk/Aws/CloudTrail/Exception/InsufficientS3BucketPolicyException.php @@ -17,6 +17,6 @@ namespace Aws\CloudTrail\Exception; /** - * Exception that occurs when a InsufficientS3BucketPolicyException error is encountered + * This exception is thrown when the policy on the S3 bucket is not sufficient. */ class InsufficientS3BucketPolicyException extends CloudTrailException {} diff --git a/inc/aws-sdk/Aws/CloudTrail/Exception/InsufficientSnsTopicPolicyException.php b/inc/aws-sdk/Aws/CloudTrail/Exception/InsufficientSnsTopicPolicyException.php index 30560c0..41dfa56 100755 --- a/inc/aws-sdk/Aws/CloudTrail/Exception/InsufficientSnsTopicPolicyException.php +++ b/inc/aws-sdk/Aws/CloudTrail/Exception/InsufficientSnsTopicPolicyException.php @@ -17,6 +17,6 @@ namespace Aws\CloudTrail\Exception; /** - * Exception that occurs when a InsufficientSnsTopicPolicyException error is encountered + * This exception is thrown when the policy on the SNS topic is not sufficient. */ class InsufficientSnsTopicPolicyException extends CloudTrailException {} diff --git a/inc/aws-sdk/Aws/CloudTrail/Exception/InvalidS3BucketNameException.php b/inc/aws-sdk/Aws/CloudTrail/Exception/InvalidS3BucketNameException.php index 5df5959..c0e051f 100755 --- a/inc/aws-sdk/Aws/CloudTrail/Exception/InvalidS3BucketNameException.php +++ b/inc/aws-sdk/Aws/CloudTrail/Exception/InvalidS3BucketNameException.php @@ -17,6 +17,6 @@ namespace Aws\CloudTrail\Exception; /** - * Exception that occurs when a InvalidS3BucketNameException error is encountered + * This exception is thrown when the provided S3 bucket name is not valid. */ class InvalidS3BucketNameException extends CloudTrailException {} diff --git a/inc/aws-sdk/Aws/CloudTrail/Exception/InvalidS3PrefixException.php b/inc/aws-sdk/Aws/CloudTrail/Exception/InvalidS3PrefixException.php index 00f3192..d5777e1 100755 --- a/inc/aws-sdk/Aws/CloudTrail/Exception/InvalidS3PrefixException.php +++ b/inc/aws-sdk/Aws/CloudTrail/Exception/InvalidS3PrefixException.php @@ -17,6 +17,6 @@ namespace Aws\CloudTrail\Exception; /** - * Exception that occurs when a InvalidS3PrefixException error is encountered + * This exception is thrown when the provided S3 prefix is not valid. */ class InvalidS3PrefixException extends CloudTrailException {} diff --git a/inc/aws-sdk/Aws/CloudTrail/Exception/InvalidSnsTopicNameException.php b/inc/aws-sdk/Aws/CloudTrail/Exception/InvalidSnsTopicNameException.php index 8c63c03..2275c6d 100755 --- a/inc/aws-sdk/Aws/CloudTrail/Exception/InvalidSnsTopicNameException.php +++ b/inc/aws-sdk/Aws/CloudTrail/Exception/InvalidSnsTopicNameException.php @@ -17,6 +17,6 @@ namespace Aws\CloudTrail\Exception; /** - * Exception that occurs when a InvalidSnsTopicNameException error is encountered + * This exception is thrown when the provided SNS topic name is not valid. */ class InvalidSnsTopicNameException extends CloudTrailException {} diff --git a/inc/aws-sdk/Aws/CloudTrail/Exception/InvalidTrailNameException.php b/inc/aws-sdk/Aws/CloudTrail/Exception/InvalidTrailNameException.php index 2795c99..5b521e1 100755 --- a/inc/aws-sdk/Aws/CloudTrail/Exception/InvalidTrailNameException.php +++ b/inc/aws-sdk/Aws/CloudTrail/Exception/InvalidTrailNameException.php @@ -17,6 +17,6 @@ namespace Aws\CloudTrail\Exception; /** - * Exception that occurs when a InvalidTrailNameException error is encountered + * This exception is thrown when the provided trail name is not valid. */ class InvalidTrailNameException extends CloudTrailException {} diff --git a/inc/aws-sdk/Aws/CloudTrail/Exception/MaximumNumberOfTrailsExceededException.php b/inc/aws-sdk/Aws/CloudTrail/Exception/MaximumNumberOfTrailsExceededException.php index afe1264..5b84df3 100755 --- a/inc/aws-sdk/Aws/CloudTrail/Exception/MaximumNumberOfTrailsExceededException.php +++ b/inc/aws-sdk/Aws/CloudTrail/Exception/MaximumNumberOfTrailsExceededException.php @@ -17,6 +17,6 @@ namespace Aws\CloudTrail\Exception; /** - * Exception that occurs when a MaximumNumberOfTrailsExceededException error is encountered + * This exception is thrown when the maximum number of trails is reached. */ class MaximumNumberOfTrailsExceededException extends CloudTrailException {} diff --git a/inc/aws-sdk/Aws/CloudTrail/Exception/S3BucketDoesNotExistException.php b/inc/aws-sdk/Aws/CloudTrail/Exception/S3BucketDoesNotExistException.php index 36f0fa5..2a32395 100755 --- a/inc/aws-sdk/Aws/CloudTrail/Exception/S3BucketDoesNotExistException.php +++ b/inc/aws-sdk/Aws/CloudTrail/Exception/S3BucketDoesNotExistException.php @@ -17,6 +17,6 @@ namespace Aws\CloudTrail\Exception; /** - * Exception that occurs when a S3BucketDoesNotExistException error is encountered + * This exception is thrown when the specified S3 bucket does not exist. */ class S3BucketDoesNotExistException extends CloudTrailException {} diff --git a/inc/aws-sdk/Aws/CloudTrail/Exception/TrailAlreadyExistsException.php b/inc/aws-sdk/Aws/CloudTrail/Exception/TrailAlreadyExistsException.php index ec95552..3beb27e 100755 --- a/inc/aws-sdk/Aws/CloudTrail/Exception/TrailAlreadyExistsException.php +++ b/inc/aws-sdk/Aws/CloudTrail/Exception/TrailAlreadyExistsException.php @@ -17,6 +17,6 @@ namespace Aws\CloudTrail\Exception; /** - * Exception that occurs when a TrailAlreadyExistsException error is encountered + * This exception is thrown when the specified trail already exists. */ class TrailAlreadyExistsException extends CloudTrailException {} diff --git a/inc/aws-sdk/Aws/CloudTrail/Exception/TrailNotFoundException.php b/inc/aws-sdk/Aws/CloudTrail/Exception/TrailNotFoundException.php index 7865882..ec2c94a 100755 --- a/inc/aws-sdk/Aws/CloudTrail/Exception/TrailNotFoundException.php +++ b/inc/aws-sdk/Aws/CloudTrail/Exception/TrailNotFoundException.php @@ -17,6 +17,6 @@ namespace Aws\CloudTrail\Exception; /** - * Exception that occurs when a TrailNotFoundException error is encountered + * This exception is thrown when the trail with the given name is not found. */ class TrailNotFoundException extends CloudTrailException {} diff --git a/inc/aws-sdk/Aws/CloudTrail/Exception/TrailNotProvidedException.php b/inc/aws-sdk/Aws/CloudTrail/Exception/TrailNotProvidedException.php index 18d88c8..8d829c3 100755 --- a/inc/aws-sdk/Aws/CloudTrail/Exception/TrailNotProvidedException.php +++ b/inc/aws-sdk/Aws/CloudTrail/Exception/TrailNotProvidedException.php @@ -17,6 +17,6 @@ namespace Aws\CloudTrail\Exception; /** - * Exception that occurs when a TrailNotProvidedException error is encountered + * This exception is thrown when no trail is provided. */ class TrailNotProvidedException extends CloudTrailException {} diff --git a/inc/aws-sdk/Aws/CloudTrail/LogFileIterator.php b/inc/aws-sdk/Aws/CloudTrail/LogFileIterator.php new file mode 100644 index 0000000..1274161 --- /dev/null +++ b/inc/aws-sdk/Aws/CloudTrail/LogFileIterator.php @@ -0,0 +1,266 @@ +describeTrails(array( + 'trailNameList' => array($trailName), + )); + $s3BucketName = $result->getPath('trailList/0/S3BucketName'); + $options[self::KEY_PREFIX] = $result->getPath('trailList/0/S3KeyPrefix'); + } catch (CloudTrailException $e) { + // There was an error describing the trail + } + + // If the bucket name is still unknown, then throw an exception + if (!$s3BucketName) { + $prev = isset($e) ? $e : null; + throw new InvalidArgumentException('The bucket name could not be determined from the trail.', 0, $prev); + } + + return new self($s3Client, $s3BucketName, $options); + } + + /** + * Constructs a LogFileIterator using the specified options: + * + * - trail_name: The name of the trail that is generating our logs. If none is provided, then "Default" will be + * used, since that is the name of the trail created in the AWS Management Console. + * - key_prefix: The S3 key prefix of your log files. This value will be overwritten when using the `fromTrail()` + * method. However, if you are using the constructor, then this value will be used. + * - start_date: The timestamp of the beginning of date range of the log records you want to read. You can pass this + * in as a `DateTime` object, integer (unix timestamp), or a string compatible with `strtotime()`. + * - end_date: The timestamp of the end of date range of the log records you want to read. You can pass this in as + * a `DateTime` object, integer (unix timestamp), or a string compatible with `strtotime()`. + * - account_id: This is your AWS account ID, which is the 12-digit number found on the *Account Identifiers* + * section of the *AWS Security Credentials* page. See https://console.aws.amazon.com/iam/home?#security_credential + * - log_region: The region of the services of the log records you want to read. + * + * @param S3Client $s3Client + * @param string $s3BucketName + * @param array $options + */ + public function __construct(S3Client $s3Client, $s3BucketName, array $options = array()) + { + $this->s3Client = $s3Client; + $this->s3BucketName = $s3BucketName; + parent::__construct($this->buildListObjectsIterator($options)); + } + + /** + * An override of the typical current behavior of \IteratorIterator to format the output such that the bucket and + * key are returned in an array + * + * @return array|bool + */ + public function current() + { + if ($object = parent::current()) { + return array( + 'Bucket' => $this->s3BucketName, + 'Key' => $object['Key'] + ); + } + + return false; + } + + /** + * Constructs an S3 ListObjects iterator, optionally decorated with FilterIterators, based on the provided options + * + * @param array $options + * + * @return \Iterator + */ + private function buildListObjectsIterator(array $options) + { + // Extract and normalize the date values from the options + $startDate = isset($options[self::START_DATE]) ? $this->normalizeDateValue($options[self::START_DATE]) : null; + $endDate = isset($options[self::END_DATE]) ? $this->normalizeDateValue($options[self::END_DATE]) : null; + + // Determine the parts of the key prefix of the log files being read + $keyPrefixParts = array( + 'prefix' => isset($options[self::KEY_PREFIX]) ? $options[self::KEY_PREFIX] : null, + 'account' => isset($options[self::ACCOUNT_ID]) ? $options[self::ACCOUNT_ID] : self::PREFIX_WILDCARD, + 'region' => isset($options[self::LOG_REGION]) ? $options[self::LOG_REGION] : self::PREFIX_WILDCARD, + 'date' => $this->determineDateForPrefix($startDate, $endDate), + ); + + // Determine the longest key prefix that can be used to retrieve all of the relevant log files + $candidatePrefix = ltrim(strtr(self::PREFIX_TEMPLATE, $keyPrefixParts), '/'); + $logKeyPrefix = $candidatePrefix; + if (($index = strpos($candidatePrefix, self::PREFIX_WILDCARD)) !== false) { + $logKeyPrefix = substr($candidatePrefix, 0, $index); + } + + // Create an iterator that will emit all of the objects matching the key prefix + $objectsIterator = $this->s3Client->getListObjectsIterator(array( + 'Bucket' => $this->s3BucketName, + 'Prefix' => $logKeyPrefix, + )); + + // Apply regex and/or date filters to the objects iterator to emit only log files matching the options + $objectsIterator = $this->applyRegexFilter($objectsIterator, $logKeyPrefix, $candidatePrefix); + $objectsIterator = $this->applyDateFilter($objectsIterator, $startDate, $endDate); + + return $objectsIterator; + } + + /** + * Normalizes a date value to a unix timestamp + * + * @param string|\DateTime|int $date + * + * @return int + * @throws \InvalidArgumentException if the value cannot be converted to a timestamp + */ + private function normalizeDateValue($date) + { + // Normalize start date to a unix timestamp + if (is_string($date)) { + $date = strtotime($date); + } elseif ($date instanceof \DateTime) { + $date = $date->format('U'); + } elseif (!is_int($date)) { + throw new \InvalidArgumentException('Date values must be a string, an int, or a DateTime object.'); + } + + return $date; + } + + /** + * Uses the provided date values to determine the date portion of the prefix + */ + private function determineDateForPrefix($startDate, $endDate) + { + // The default date value should look like "*/*/*" after joining + $dateParts = array_fill_keys(array('Y', 'm', 'd'), self::PREFIX_WILDCARD); + + // Narrow down the date by replacing the WILDCARDs with values if they are the same for the start and end date + if ($startDate && $endDate) { + foreach ($dateParts as $key => &$value) { + $candidateValue = date($key, $startDate); + if ($candidateValue === date($key, $endDate)) { + $value = $candidateValue; + } else { + break; + } + } + } + + return join('/', $dateParts); + } + + /** + * Applies a regex iterator filter that limits the ListObjects result set based on the provided options + * + * @param \Iterator $objectsIterator + * @param string $logKeyPrefix + * @param string $candidatePrefix + * + * @return \Iterator + */ + private function applyRegexFilter($objectsIterator, $logKeyPrefix, $candidatePrefix) + { + // If the prefix and candidate prefix are not the same, then there were WILDCARDs + if ($logKeyPrefix !== $candidatePrefix) { + // Turn the candidate prefix into a regex by trimming and converting WILDCARDs to regex notation + $regex = rtrim($candidatePrefix, '/' . self::PREFIX_WILDCARD) . '/'; + $regex = strtr($regex, array(self::PREFIX_WILDCARD => '[^/]+')); + + // After trimming WILDCARDs or the end, if the regex is the same as the prefix, then no regex is needed + if ($logKeyPrefix !== $regex) { + // Apply a regex filter iterator to remove files that don't match the provided options + $objectsIterator = new FilterIterator($objectsIterator, function ($object) use ($regex) { + return preg_match("#{$regex}#", $object['Key']); + }); + } + } + + return $objectsIterator; + } + + /** + * Applies an iterator filter to restrict the ListObjects result set to the specified date range + * + * @param \Iterator $objectsIterator + * @param int $startDate + * @param int $endDate + * + * @return \Iterator + */ + private function applyDateFilter($objectsIterator, $startDate, $endDate) + { + // If either a start or end date was provided, filter out dates that don't match the date range + if ($startDate || $endDate) { + $objectsIterator = new FilterIterator($objectsIterator, function ($object) use ($startDate, $endDate) { + if (preg_match('/[0-9]{8}T[0-9]{4}Z/', $object['Key'], $matches)) { + $date = strtotime($matches[0]); + if ((!$startDate || $date >= $startDate) && (!$endDate || $date <= $endDate)) { + return true; + } + } + return false; + }); + } + + return $objectsIterator; + } +} diff --git a/inc/aws-sdk/Aws/CloudTrail/LogFileReader.php b/inc/aws-sdk/Aws/CloudTrail/LogFileReader.php new file mode 100644 index 0000000..de5173f --- /dev/null +++ b/inc/aws-sdk/Aws/CloudTrail/LogFileReader.php @@ -0,0 +1,56 @@ +s3Client = $s3Client; + } + + /** + * Downloads, unzips, and reads a CloudTrail log file from Amazon S3 + * + * @param string $s3BucketName The bucket name of the log file in Amazon S3 + * @param string $logFileKey The key of the log file in Amazon S3 + * + * @return array + */ + public function read($s3BucketName, $logFileKey) + { + // Create a command for getting the log file object + $command = $this->s3Client->getCommand('GetObject', array( + 'Bucket' => (string) $s3BucketName, + 'Key' => (string) $logFileKey, + )); + + // Make sure gzip encoding header is sent and accepted in order to inflate the response data + $command->set('ResponseContentEncoding', 'x-gzip'); + $command->prepare()->addHeader('Accept-Encoding', 'gzip'); + + // Get the JSON response data and extract the log records + $command->execute(); + $logData = $command->getResponse()->json(); + if (isset($logData['Records'])) { + return $logData['Records']; + } else { + return array(); + } + } +} diff --git a/inc/aws-sdk/Aws/CloudTrail/LogRecordIterator.php b/inc/aws-sdk/Aws/CloudTrail/LogRecordIterator.php new file mode 100644 index 0000000..d66cf59 --- /dev/null +++ b/inc/aws-sdk/Aws/CloudTrail/LogRecordIterator.php @@ -0,0 +1,180 @@ + $s3BucketName, + 'Key' => $s3ObjectKey, + ))); + + return new self($logFileReader, $logFileIterator); + } + + /** + * @param LogFileReader $logFileReader + * @param \Iterator $logFileIterator + */ + public function __construct(LogFileReader $logFileReader, \Iterator $logFileIterator) + { + $this->logFileReader = $logFileReader; + $this->logFileIterator = $logFileIterator; + $this->records = array(); + $this->recordIndex = 0; + } + + /** + * Returns the current log record as a Guzzle Collection object. This object behaves like an associative array + * except that it returns `null` on non-existent keys instead of causing an error. See the linked resources for the + * schema of the log record data and how to work with Guzzle Collections. + * + * @return Collection + * @link http://docs.aws.amazon.com/awscloudtrail/latest/userguide/eventreference.html + * @link http://api.guzzlephp.org/class-Guzzle.Common.Collection.html + */ + public function current() + { + if ($this->valid()) { + return new Collection($this->records[$this->recordIndex]); + } else { + return false; + } + } + + public function next() + { + $this->recordIndex++; + + // If all the records have been exhausted, get more records from the next log file + while (!$this->valid()) { + $this->logFileIterator->next(); + $success = $this->loadRecordsFromCurrentLogFile(); + if (!$success) { + // The objects iterator is exhausted as well, so stop trying + break; + } + } + } + + public function key() + { + if ($logFile = $this->logFileIterator->current()) { + return $logFile['Key'] . '.' . $this->recordIndex; + } else { + return null; + } + } + + public function valid() + { + return isset($this->records[$this->recordIndex]); + } + + public function rewind() + { + $this->logFileIterator->rewind(); + $this->loadRecordsFromCurrentLogFile(); + } + + public function getInnerIterator() + { + return $this->logFileIterator; + } + + /** + * Examines the current file in the `logFileIterator` and attempts to read it and load log records from it using + * the `logFileReader`. This method expects that items pulled from the iterator will take the form: + * + * array( + * 'Bucket' => '...', + * 'Key' => '...', + * ) + * + * @return bool Returns `true` if records were loaded and `false` if no records were found + */ + private function loadRecordsFromCurrentLogFile() + { + $this->recordIndex = 0; + $this->records = array(); + + $logFile = $this->logFileIterator->current(); + if ($logFile && isset($logFile['Bucket']) && isset($logFile['Key'])) { + $this->records = $this->logFileReader->read($logFile['Bucket'], $logFile['Key']); + } + + return (bool) $logFile; + } +} diff --git a/inc/aws-sdk/Aws/CloudTrail/Resources/cloudtrail-2013-11-01.php b/inc/aws-sdk/Aws/CloudTrail/Resources/cloudtrail-2013-11-01.php index a32ae8d..b354503 100755 --- a/inc/aws-sdk/Aws/CloudTrail/Resources/cloudtrail-2013-11-01.php +++ b/inc/aws-sdk/Aws/CloudTrail/Resources/cloudtrail-2013-11-01.php @@ -25,16 +25,46 @@ return array ( 'signatureVersion' => 'v4', 'namespace' => 'CloudTrail', 'regions' => array( + 'ap-northeast-1' => array( + 'http' => false, + 'https' => true, + 'hostname' => 'cloudtrail.ap-northeast-1.amazonaws.com', + ), + 'ap-southeast-1' => array( + 'http' => false, + 'https' => true, + 'hostname' => 'cloudtrail.ap-southeast-1.amazonaws.com', + ), + 'ap-southeast-2' => array( + 'http' => false, + 'https' => true, + 'hostname' => 'cloudtrail.ap-southeast-2.amazonaws.com', + ), + 'eu-west-1' => array( + 'http' => false, + 'https' => true, + 'hostname' => 'cloudtrail.eu-west-1.amazonaws.com', + ), 'us-east-1' => array( 'http' => false, 'https' => true, 'hostname' => 'cloudtrail.us-east-1.amazonaws.com', ), + 'us-west-1' => array( + 'http' => false, + 'https' => true, + 'hostname' => 'cloudtrail.us-west-1.amazonaws.com', + ), 'us-west-2' => array( 'http' => false, 'https' => true, 'hostname' => 'cloudtrail.us-west-2.amazonaws.com', ), + 'sa-east-1' => array( + 'http' => false, + 'https' => true, + 'hostname' => 'cloudtrail.sa-east-1.amazonaws.com', + ), ), 'operations' => array( 'CreateTrail' => array( @@ -58,62 +88,86 @@ return array ( 'location' => 'header', 'default' => 'com.amazonaws.cloudtrail.v20131101.CloudTrail_20131101.CreateTrail', ), - 'trail' => array( - 'type' => 'object', + 'Name' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + ), + 'S3BucketName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + ), + 'S3KeyPrefix' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'SnsTopicName' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'IncludeGlobalServiceEvents' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'json', + ), + 'CloudWatchLogsLogGroupArn' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'CloudWatchLogsRoleArn' => array( + 'type' => 'string', 'location' => 'json', - 'properties' => array( - 'Name' => array( - 'type' => 'string', - ), - 'S3BucketName' => array( - 'type' => 'string', - ), - 'S3KeyPrefix' => array( - 'type' => 'string', - ), - 'SnsTopicName' => array( - 'type' => 'string', - ), - 'IncludeGlobalServiceEvents' => array( - 'type' => 'boolean', - 'format' => 'boolean-string', - ), - ), ), ), 'errorResponses' => array( array( + 'reason' => 'This exception is thrown when the maximum number of trails is reached.', 'class' => 'MaximumNumberOfTrailsExceededException', ), array( + 'reason' => 'This exception is thrown when the specified trail already exists.', 'class' => 'TrailAlreadyExistsException', ), array( + 'reason' => 'This exception is thrown when the specified S3 bucket does not exist.', 'class' => 'S3BucketDoesNotExistException', ), array( + 'reason' => 'This exception is thrown when the policy on the S3 bucket is not sufficient.', 'class' => 'InsufficientS3BucketPolicyException', ), array( + 'reason' => 'This exception is thrown when the policy on the SNS topic is not sufficient.', 'class' => 'InsufficientSnsTopicPolicyException', ), array( - 'class' => 'InternalErrorException', - ), - array( + 'reason' => 'This exception is thrown when the provided S3 bucket name is not valid.', 'class' => 'InvalidS3BucketNameException', ), array( + 'reason' => 'This exception is thrown when the provided S3 prefix is not valid.', 'class' => 'InvalidS3PrefixException', ), array( + 'reason' => 'This exception is thrown when the provided SNS topic name is not valid.', 'class' => 'InvalidSnsTopicNameException', ), array( + 'reason' => 'This exception is thrown when the provided trail name is not valid.', 'class' => 'InvalidTrailNameException', ), array( - 'class' => 'TrailNotProvidedException', + 'reason' => 'This exception is thrown when the provided CloudWatch log group is not valid.', + 'class' => 'InvalidCloudWatchLogsLogGroupArnException', + ), + array( + 'reason' => 'This exception is thrown when the provided role is not valid.', + 'class' => 'InvalidCloudWatchLogsRoleArnException', + ), + array( + 'reason' => 'Cannot set a CloudWatch Logs delivery for this region.', + 'class' => 'CloudWatchLogsDeliveryUnavailableException', ), ), ), @@ -139,18 +193,18 @@ return array ( 'default' => 'com.amazonaws.cloudtrail.v20131101.CloudTrail_20131101.DeleteTrail', ), 'Name' => array( + 'required' => true, 'type' => 'string', 'location' => 'json', ), ), 'errorResponses' => array( array( + 'reason' => 'This exception is thrown when the trail with the given name is not found.', 'class' => 'TrailNotFoundException', ), array( - 'class' => 'InternalErrorException', - ), - array( + 'reason' => 'This exception is thrown when the provided trail name is not valid.', 'class' => 'InvalidTrailNameException', ), ), @@ -185,11 +239,6 @@ return array ( ), ), ), - 'errorResponses' => array( - array( - 'class' => 'InternalErrorException', - ), - ), ), 'GetTrailStatus' => array( 'httpMethod' => 'POST', @@ -213,27 +262,27 @@ return array ( 'default' => 'com.amazonaws.cloudtrail.v20131101.CloudTrail_20131101.GetTrailStatus', ), 'Name' => array( + 'required' => true, 'type' => 'string', 'location' => 'json', ), ), 'errorResponses' => array( array( + 'reason' => 'This exception is thrown when the trail with the given name is not found.', 'class' => 'TrailNotFoundException', ), array( - 'class' => 'InternalErrorException', - ), - array( + 'reason' => 'This exception is thrown when the provided trail name is not valid.', 'class' => 'InvalidTrailNameException', ), ), ), - 'StartLogging' => array( + 'LookupEvents' => array( 'httpMethod' => 'POST', 'uri' => '/', 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'EmptyOutput', + 'responseClass' => 'LookupEventsResponse', 'responseType' => 'model', 'parameters' => array( 'Content-Type' => array( @@ -248,30 +297,108 @@ return array ( 'X-Amz-Target' => array( 'static' => true, 'location' => 'header', - 'default' => 'com.amazonaws.cloudtrail.v20131101.CloudTrail_20131101.StartLogging', + 'default' => 'com.amazonaws.cloudtrail.v20131101.CloudTrail_20131101.LookupEvents', ), - 'Name' => array( + 'LookupAttributes' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'LookupAttribute', + 'type' => 'object', + 'properties' => array( + 'AttributeKey' => array( + 'required' => true, + 'type' => 'string', + ), + 'AttributeValue' => array( + 'required' => true, + 'type' => 'string', + ), + ), + ), + ), + 'StartTime' => array( + 'type' => array( + 'object', + 'string', + 'integer', + ), + 'format' => 'date-time', + 'location' => 'json', + ), + 'EndTime' => array( + 'type' => array( + 'object', + 'string', + 'integer', + ), + 'format' => 'date-time', + 'location' => 'json', + ), + 'MaxResults' => array( + 'type' => 'numeric', + 'location' => 'json', + 'minimum' => 1, + 'maximum' => 50, + ), + 'NextToken' => array( 'type' => 'string', 'location' => 'json', ), ), 'errorResponses' => array( array( - 'class' => 'S3BucketDoesNotExistException', + 'reason' => 'Occurs when an invalid lookup attribute is specified.', + 'class' => 'InvalidLookupAttributesException', ), array( - 'class' => 'InsufficientS3BucketPolicyException', + 'reason' => 'Occurs if the timestamp values are invalid. Either the start time occurs after the end time or the time range is outside the range of possible values.', + 'class' => 'InvalidTimeRangeException', ), array( - 'class' => 'InsufficientSnsTopicPolicyException', + 'reason' => 'This exception is thrown if the limit specified is invalid.', + 'class' => 'InvalidMaxResultsException', ), array( - 'class' => 'TrailNotFoundException', + 'reason' => 'Invalid token or token that was previously used in a request with different parameters. This exception is thrown if the token is invalid.', + 'class' => 'InvalidNextTokenException', + ), + ), + ), + 'StartLogging' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'EmptyOutput', + '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' => 'com.amazonaws.cloudtrail.v20131101.CloudTrail_20131101.StartLogging', + ), + 'Name' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + ), + ), + 'errorResponses' => array( array( - 'class' => 'InternalErrorException', + 'reason' => 'This exception is thrown when the trail with the given name is not found.', + 'class' => 'TrailNotFoundException', ), array( + 'reason' => 'This exception is thrown when the provided trail name is not valid.', 'class' => 'InvalidTrailNameException', ), ), @@ -298,18 +425,18 @@ return array ( 'default' => 'com.amazonaws.cloudtrail.v20131101.CloudTrail_20131101.StopLogging', ), 'Name' => array( + 'required' => true, 'type' => 'string', 'location' => 'json', ), ), 'errorResponses' => array( array( + 'reason' => 'This exception is thrown when the trail with the given name is not found.', 'class' => 'TrailNotFoundException', ), array( - 'class' => 'InternalErrorException', - ), - array( + 'reason' => 'This exception is thrown when the provided trail name is not valid.', 'class' => 'InvalidTrailNameException', ), ), @@ -335,59 +462,81 @@ return array ( 'location' => 'header', 'default' => 'com.amazonaws.cloudtrail.v20131101.CloudTrail_20131101.UpdateTrail', ), - 'trail' => array( - 'type' => 'object', + 'Name' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + ), + 'S3BucketName' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'S3KeyPrefix' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'SnsTopicName' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'IncludeGlobalServiceEvents' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'json', + ), + 'CloudWatchLogsLogGroupArn' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'CloudWatchLogsRoleArn' => array( + 'type' => 'string', 'location' => 'json', - 'properties' => array( - 'Name' => array( - 'type' => 'string', - ), - 'S3BucketName' => array( - 'type' => 'string', - ), - 'S3KeyPrefix' => array( - 'type' => 'string', - ), - 'SnsTopicName' => array( - 'type' => 'string', - ), - 'IncludeGlobalServiceEvents' => array( - 'type' => 'boolean', - 'format' => 'boolean-string', - ), - ), ), ), 'errorResponses' => array( array( + 'reason' => 'This exception is thrown when the specified S3 bucket does not exist.', 'class' => 'S3BucketDoesNotExistException', ), array( + 'reason' => 'This exception is thrown when the policy on the S3 bucket is not sufficient.', 'class' => 'InsufficientS3BucketPolicyException', ), array( + 'reason' => 'This exception is thrown when the policy on the SNS topic is not sufficient.', 'class' => 'InsufficientSnsTopicPolicyException', ), array( + 'reason' => 'This exception is thrown when the trail with the given name is not found.', 'class' => 'TrailNotFoundException', ), array( - 'class' => 'InternalErrorException', - ), - array( + 'reason' => 'This exception is thrown when the provided S3 bucket name is not valid.', 'class' => 'InvalidS3BucketNameException', ), array( + 'reason' => 'This exception is thrown when the provided S3 prefix is not valid.', 'class' => 'InvalidS3PrefixException', ), array( + 'reason' => 'This exception is thrown when the provided SNS topic name is not valid.', 'class' => 'InvalidSnsTopicNameException', ), array( + 'reason' => 'This exception is thrown when the provided trail name is not valid.', 'class' => 'InvalidTrailNameException', ), array( - 'class' => 'TrailNotProvidedException', + 'reason' => 'This exception is thrown when the provided CloudWatch log group is not valid.', + 'class' => 'InvalidCloudWatchLogsLogGroupArnException', + ), + array( + 'reason' => 'This exception is thrown when the provided role is not valid.', + 'class' => 'InvalidCloudWatchLogsRoleArnException', + ), + array( + 'reason' => 'Cannot set a CloudWatch Logs delivery for this region.', + 'class' => 'CloudWatchLogsDeliveryUnavailableException', ), ), ), @@ -397,26 +546,33 @@ return array ( 'type' => 'object', 'additionalProperties' => true, 'properties' => array( - 'trail' => array( - 'type' => 'object', + 'Name' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'S3BucketName' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'S3KeyPrefix' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'SnsTopicName' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'IncludeGlobalServiceEvents' => array( + 'type' => 'boolean', + 'location' => 'json', + ), + 'CloudWatchLogsLogGroupArn' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'CloudWatchLogsRoleArn' => array( + 'type' => 'string', 'location' => 'json', - 'properties' => array( - 'Name' => array( - 'type' => 'string', - ), - 'S3BucketName' => array( - 'type' => 'string', - ), - 'S3KeyPrefix' => array( - 'type' => 'string', - ), - 'SnsTopicName' => array( - 'type' => 'string', - ), - 'IncludeGlobalServiceEvents' => array( - 'type' => 'boolean', - ), - ), ), ), ), @@ -450,6 +606,12 @@ return array ( 'IncludeGlobalServiceEvents' => array( 'type' => 'boolean', ), + 'CloudWatchLogsLogGroupArn' => array( + 'type' => 'string', + ), + 'CloudWatchLogsRoleArn' => array( + 'type' => 'string', + ), ), ), ), @@ -471,65 +633,120 @@ return array ( 'type' => 'string', 'location' => 'json', ), - 'LatestDeliveryAttemptTime' => array( + 'LatestDeliveryTime' => array( 'type' => 'string', 'location' => 'json', ), - 'LatestDeliveryAttemptSucceeded' => array( + 'LatestNotificationTime' => array( 'type' => 'string', 'location' => 'json', ), - 'LatestNotificationAttemptTime' => array( + 'StartLoggingTime' => array( 'type' => 'string', 'location' => 'json', ), - 'LatestNotificationAttemptSucceeded' => array( + 'StopLoggingTime' => array( 'type' => 'string', 'location' => 'json', ), - 'TimeLoggingStarted' => array( + 'LatestCloudWatchLogsDeliveryError' => array( 'type' => 'string', 'location' => 'json', ), - 'TimeLoggingStopped' => array( + 'LatestCloudWatchLogsDeliveryTime' => array( 'type' => 'string', 'location' => 'json', ), ), ), - 'UpdateTrailResponse' => array( + 'LookupEventsResponse' => array( 'type' => 'object', 'additionalProperties' => true, 'properties' => array( - 'trail' => array( - 'type' => 'object', + 'Events' => array( + 'type' => 'array', 'location' => 'json', - 'properties' => array( - 'Name' => array( - 'type' => 'string', - ), - 'S3BucketName' => array( - 'type' => 'string', - ), - 'S3KeyPrefix' => array( - 'type' => 'string', - ), - 'SnsTopicName' => array( - 'type' => 'string', - ), - 'IncludeGlobalServiceEvents' => array( - 'type' => 'boolean', + 'items' => array( + 'name' => 'Event', + 'type' => 'object', + 'properties' => array( + 'EventId' => array( + 'type' => 'string', + ), + 'EventName' => array( + 'type' => 'string', + ), + 'EventTime' => array( + 'type' => 'string', + ), + 'Username' => array( + 'type' => 'string', + ), + 'Resources' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Resource', + 'type' => 'object', + 'properties' => array( + 'ResourceType' => array( + 'type' => 'string', + ), + 'ResourceName' => array( + 'type' => 'string', + ), + ), + ), + ), + 'CloudTrailEvent' => array( + 'type' => 'string', + ), ), ), ), + 'NextToken' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + ), + 'UpdateTrailResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'Name' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'S3BucketName' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'S3KeyPrefix' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'SnsTopicName' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'IncludeGlobalServiceEvents' => array( + 'type' => 'boolean', + 'location' => 'json', + ), + 'CloudWatchLogsLogGroupArn' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'CloudWatchLogsRoleArn' => array( + 'type' => 'string', + 'location' => 'json', + ), ), ), ), 'iterators' => array( - 'operations' => array( - 'DescribeTrails' => array( - 'result_key' => 'trailList', - ), + 'DescribeTrails' => array( + 'result_key' => 'trailList', ), ), ); diff --git a/inc/aws-sdk/Aws/CloudWatch/CloudWatchClient.php b/inc/aws-sdk/Aws/CloudWatch/CloudWatchClient.php index 6276743..c33e540 100755 --- a/inc/aws-sdk/Aws/CloudWatch/CloudWatchClient.php +++ b/inc/aws-sdk/Aws/CloudWatch/CloudWatchClient.php @@ -42,8 +42,8 @@ use Guzzle\Service\Resource\ResourceIteratorInterface; * @method ResourceIteratorInterface getDescribeAlarmsForMetricIterator(array $args = array()) The input array uses the parameters of the DescribeAlarmsForMetric operation * @method ResourceIteratorInterface getListMetricsIterator(array $args = array()) The input array uses the parameters of the ListMetrics operation * - * @link http://docs.aws.amazon.com/aws-sdk-php/guide/latest/service-cloudwatch.html User guide - * @link http://docs.aws.amazon.com/aws-sdk-php/latest/class-Aws.CloudWatch.CloudWatchClient.html API docs + * @link http://docs.aws.amazon.com/aws-sdk-php/v2/guide/service-cloudwatch.html User guide + * @link http://docs.aws.amazon.com/aws-sdk-php/v2/api/class-Aws.CloudWatch.CloudWatchClient.html API docs */ class CloudWatchClient extends AbstractClient { @@ -55,7 +55,7 @@ class CloudWatchClient extends AbstractClient * @param array|Collection $config Client configuration data * * @return self - * @see \Aws\Common\Client\DefaultClient for a list of available configuration options + * @link http://docs.aws.amazon.com/aws-sdk-php/v2/guide/configuration.html#client-configuration-options */ public static function factory($config = array()) { diff --git a/inc/aws-sdk/Aws/CloudWatch/Resources/cloudwatch-2010-08-01.php b/inc/aws-sdk/Aws/CloudWatch/Resources/cloudwatch-2010-08-01.php index 61122d0..9fae6c8 100755 --- a/inc/aws-sdk/Aws/CloudWatch/Resources/cloudwatch-2010-08-01.php +++ b/inc/aws-sdk/Aws/CloudWatch/Resources/cloudwatch-2010-08-01.php @@ -21,7 +21,7 @@ return array ( 'serviceAbbreviation' => 'CloudWatch', 'serviceType' => 'query', 'resultWrapped' => true, - 'signatureVersion' => 'v2', + 'signatureVersion' => 'v4', 'namespace' => 'CloudWatch', 'regions' => array( 'us-east-1' => array( @@ -64,6 +64,11 @@ return array ( 'https' => true, 'hostname' => 'monitoring.sa-east-1.amazonaws.com', ), + 'cn-north-1' => array( + 'http' => true, + 'https' => true, + 'hostname' => 'monitoring.cn-north-1.amazonaws.com.cn', + ), 'us-gov-west-1' => array( 'http' => false, 'https' => true, @@ -135,11 +140,6 @@ return array ( 'HistoryItemType' => array( 'type' => 'string', 'location' => 'aws.query', - 'enum' => array( - 'ConfigurationUpdate', - 'StateUpdate', - 'Action', - ), ), 'StartDate' => array( 'type' => array( @@ -215,11 +215,6 @@ return array ( 'StateValue' => array( 'type' => 'string', 'location' => 'aws.query', - 'enum' => array( - 'OK', - 'ALARM', - 'INSUFFICIENT_DATA', - ), ), 'ActionPrefix' => array( 'type' => 'string', @@ -279,13 +274,6 @@ return array ( 'Statistic' => array( 'type' => 'string', 'location' => 'aws.query', - 'enum' => array( - 'SampleCount', - 'Average', - 'Sum', - 'Minimum', - 'Maximum', - ), ), 'Dimensions' => array( 'type' => 'array', @@ -319,35 +307,6 @@ return array ( 'Unit' => array( 'type' => 'string', 'location' => 'aws.query', - 'enum' => array( - 'Seconds', - 'Microseconds', - 'Milliseconds', - 'Bytes', - 'Kilobytes', - 'Megabytes', - 'Gigabytes', - 'Terabytes', - 'Bits', - 'Kilobits', - 'Megabits', - 'Gigabits', - 'Terabits', - 'Percent', - 'Count', - 'Bytes/Second', - 'Kilobytes/Second', - 'Megabytes/Second', - 'Gigabytes/Second', - 'Terabytes/Second', - 'Bits/Second', - 'Kilobits/Second', - 'Megabits/Second', - 'Gigabits/Second', - 'Terabits/Second', - 'Count/Second', - 'None', - ), ), ), ), @@ -506,47 +465,11 @@ return array ( 'items' => array( 'name' => 'Statistic', 'type' => 'string', - 'enum' => array( - 'SampleCount', - 'Average', - 'Sum', - 'Minimum', - 'Maximum', - ), ), ), 'Unit' => array( 'type' => 'string', 'location' => 'aws.query', - 'enum' => array( - 'Seconds', - 'Microseconds', - 'Milliseconds', - 'Bytes', - 'Kilobytes', - 'Megabytes', - 'Gigabytes', - 'Terabytes', - 'Bits', - 'Kilobits', - 'Megabits', - 'Gigabits', - 'Terabits', - 'Percent', - 'Count', - 'Bytes/Second', - 'Kilobytes/Second', - 'Megabytes/Second', - 'Gigabytes/Second', - 'Terabytes/Second', - 'Bits/Second', - 'Kilobits/Second', - 'Megabits/Second', - 'Gigabits/Second', - 'Terabits/Second', - 'Count/Second', - 'None', - ), ), ), 'errorResponses' => array( @@ -724,13 +647,6 @@ return array ( 'required' => true, 'type' => 'string', 'location' => 'aws.query', - 'enum' => array( - 'SampleCount', - 'Average', - 'Sum', - 'Minimum', - 'Maximum', - ), ), 'Dimensions' => array( 'type' => 'array', @@ -765,35 +681,6 @@ return array ( 'Unit' => array( 'type' => 'string', 'location' => 'aws.query', - 'enum' => array( - 'Seconds', - 'Microseconds', - 'Milliseconds', - 'Bytes', - 'Kilobytes', - 'Megabytes', - 'Gigabytes', - 'Terabytes', - 'Bits', - 'Kilobits', - 'Megabits', - 'Gigabits', - 'Terabits', - 'Percent', - 'Count', - 'Bytes/Second', - 'Kilobytes/Second', - 'Megabytes/Second', - 'Gigabytes/Second', - 'Terabytes/Second', - 'Bits/Second', - 'Kilobits/Second', - 'Megabits/Second', - 'Gigabits/Second', - 'Terabits/Second', - 'Count/Second', - 'None', - ), ), 'EvaluationPeriods' => array( 'required' => true, @@ -810,12 +697,6 @@ return array ( 'required' => true, 'type' => 'string', 'location' => 'aws.query', - 'enum' => array( - 'GreaterThanOrEqualToThreshold', - 'GreaterThanThreshold', - 'LessThanThreshold', - 'LessThanOrEqualToThreshold', - ), ), ), 'errorResponses' => array( @@ -921,35 +802,6 @@ return array ( ), 'Unit' => array( 'type' => 'string', - 'enum' => array( - 'Seconds', - 'Microseconds', - 'Milliseconds', - 'Bytes', - 'Kilobytes', - 'Megabytes', - 'Gigabytes', - 'Terabytes', - 'Bits', - 'Kilobits', - 'Megabits', - 'Gigabits', - 'Terabits', - 'Percent', - 'Count', - 'Bytes/Second', - 'Kilobytes/Second', - 'Megabytes/Second', - 'Gigabytes/Second', - 'Terabytes/Second', - 'Bits/Second', - 'Kilobits/Second', - 'Megabits/Second', - 'Gigabits/Second', - 'Terabits/Second', - 'Count/Second', - 'None', - ), ), ), ), @@ -1002,11 +854,6 @@ return array ( 'required' => true, 'type' => 'string', 'location' => 'aws.query', - 'enum' => array( - 'OK', - 'ALARM', - 'INSUFFICIENT_DATA', - ), ), 'StateReason' => array( 'required' => true, @@ -1380,27 +1227,25 @@ return array ( ), ), 'iterators' => array( - 'operations' => array( - 'DescribeAlarmHistory' => array( - 'token_param' => 'NextToken', - 'token_key' => 'NextToken', - 'limit_key' => 'MaxRecords', - 'result_key' => 'AlarmHistoryItems', - ), - 'DescribeAlarms' => array( - 'token_param' => 'NextToken', - 'token_key' => 'NextToken', - 'limit_key' => 'MaxRecords', - 'result_key' => 'MetricAlarms', - ), - 'DescribeAlarmsForMetric' => array( - 'result_key' => 'MetricAlarms', - ), - 'ListMetrics' => array( - 'token_param' => 'NextToken', - 'token_key' => 'NextToken', - 'result_key' => 'Metrics', - ), + 'DescribeAlarmHistory' => array( + 'input_token' => 'NextToken', + 'output_token' => 'NextToken', + 'limit_key' => 'MaxRecords', + 'result_key' => 'AlarmHistoryItems', + ), + 'DescribeAlarms' => array( + 'input_token' => 'NextToken', + 'output_token' => 'NextToken', + 'limit_key' => 'MaxRecords', + 'result_key' => 'MetricAlarms', + ), + 'DescribeAlarmsForMetric' => array( + 'result_key' => 'MetricAlarms', + ), + 'ListMetrics' => array( + 'input_token' => 'NextToken', + 'output_token' => 'NextToken', + 'result_key' => 'Metrics', ), ), ); diff --git a/inc/aws-sdk/Aws/CloudWatchLogs/CloudWatchLogsClient.php b/inc/aws-sdk/Aws/CloudWatchLogs/CloudWatchLogsClient.php new file mode 100644 index 0000000..99ca993 --- /dev/null +++ b/inc/aws-sdk/Aws/CloudWatchLogs/CloudWatchLogsClient.php @@ -0,0 +1,58 @@ +setConfig($config) + ->setConfigDefaults(array( + Options::VERSION => self::LATEST_API_VERSION, + Options::SERVICE_DESCRIPTION => __DIR__ . '/Resources/cloudwatchlogs-%s.php' + )) + ->setExceptionParser(new JsonQueryExceptionParser()) + ->build(); + } +} diff --git a/inc/aws-sdk/Aws/CloudWatchLogs/Exception/CloudWatchLogsException.php b/inc/aws-sdk/Aws/CloudWatchLogs/Exception/CloudWatchLogsException.php new file mode 100644 index 0000000..d49bc9d --- /dev/null +++ b/inc/aws-sdk/Aws/CloudWatchLogs/Exception/CloudWatchLogsException.php @@ -0,0 +1,10 @@ + '2014-03-28', + 'endpointPrefix' => 'logs', + 'serviceFullName' => 'Amazon CloudWatch Logs', + 'serviceType' => 'json', + 'jsonVersion' => '1.1', + 'targetPrefix' => 'Logs_20140328.', + 'signatureVersion' => 'v4', + 'namespace' => 'CloudWatchLogs', + 'regions' => array( + 'us-east-1' => array( + 'http' => false, + 'https' => true, + 'hostname' => 'logs.us-east-1.amazonaws.com', + ), + ), + 'operations' => array( + 'CreateLogGroup' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'EmptyOutput', + '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' => 'Logs_20140328.CreateLogGroup', + ), + 'logGroupName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 512, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'Returned if a parameter of the request is incorrectly specified.', + 'class' => 'InvalidParameterException', + ), + array( + 'reason' => 'Returned if the specified resource already exists.', + 'class' => 'ResourceAlreadyExistsException', + ), + array( + 'reason' => 'Returned if you have reached the maximum number of resources that can be created.', + 'class' => 'LimitExceededException', + ), + array( + 'reason' => 'Returned if multiple requests to update the same resource were in conflict.', + 'class' => 'OperationAbortedException', + ), + array( + 'reason' => 'Returned if the service cannot complete the request.', + 'class' => 'ServiceUnavailableException', + ), + ), + ), + 'CreateLogStream' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'EmptyOutput', + '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' => 'Logs_20140328.CreateLogStream', + ), + 'logGroupName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 512, + ), + 'logStreamName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 512, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'Returned if a parameter of the request is incorrectly specified.', + 'class' => 'InvalidParameterException', + ), + array( + 'reason' => 'Returned if the specified resource already exists.', + 'class' => 'ResourceAlreadyExistsException', + ), + array( + 'reason' => 'Returned if the specified resource does not exist.', + 'class' => 'ResourceNotFoundException', + ), + array( + 'reason' => 'Returned if the service cannot complete the request.', + 'class' => 'ServiceUnavailableException', + ), + ), + ), + 'DeleteLogGroup' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'EmptyOutput', + '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' => 'Logs_20140328.DeleteLogGroup', + ), + 'logGroupName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 512, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'Returned if a parameter of the request is incorrectly specified.', + 'class' => 'InvalidParameterException', + ), + array( + 'reason' => 'Returned if the specified resource does not exist.', + 'class' => 'ResourceNotFoundException', + ), + array( + 'reason' => 'Returned if multiple requests to update the same resource were in conflict.', + 'class' => 'OperationAbortedException', + ), + array( + 'reason' => 'Returned if the service cannot complete the request.', + 'class' => 'ServiceUnavailableException', + ), + ), + ), + 'DeleteLogStream' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'EmptyOutput', + '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' => 'Logs_20140328.DeleteLogStream', + ), + 'logGroupName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 512, + ), + 'logStreamName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 512, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'Returned if a parameter of the request is incorrectly specified.', + 'class' => 'InvalidParameterException', + ), + array( + 'reason' => 'Returned if the specified resource does not exist.', + 'class' => 'ResourceNotFoundException', + ), + array( + 'reason' => 'Returned if multiple requests to update the same resource were in conflict.', + 'class' => 'OperationAbortedException', + ), + array( + 'reason' => 'Returned if the service cannot complete the request.', + 'class' => 'ServiceUnavailableException', + ), + ), + ), + 'DeleteMetricFilter' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'EmptyOutput', + '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' => 'Logs_20140328.DeleteMetricFilter', + ), + 'logGroupName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 512, + ), + 'filterName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 512, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'Returned if a parameter of the request is incorrectly specified.', + 'class' => 'InvalidParameterException', + ), + array( + 'reason' => 'Returned if the specified resource does not exist.', + 'class' => 'ResourceNotFoundException', + ), + array( + 'reason' => 'Returned if multiple requests to update the same resource were in conflict.', + 'class' => 'OperationAbortedException', + ), + array( + 'reason' => 'Returned if the service cannot complete the request.', + 'class' => 'ServiceUnavailableException', + ), + ), + ), + 'DeleteRetentionPolicy' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'EmptyOutput', + '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' => 'Logs_20140328.DeleteRetentionPolicy', + ), + 'logGroupName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 512, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'Returned if a parameter of the request is incorrectly specified.', + 'class' => 'InvalidParameterException', + ), + array( + 'reason' => 'Returned if the specified resource does not exist.', + 'class' => 'ResourceNotFoundException', + ), + array( + 'reason' => 'Returned if multiple requests to update the same resource were in conflict.', + 'class' => 'OperationAbortedException', + ), + array( + 'reason' => 'Returned if the service cannot complete the request.', + 'class' => 'ServiceUnavailableException', + ), + ), + ), + 'DescribeLogGroups' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'DescribeLogGroupsResponse', + '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' => 'Logs_20140328.DescribeLogGroups', + ), + 'logGroupNamePrefix' => array( + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 512, + ), + 'nextToken' => array( + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + ), + 'limit' => array( + 'type' => 'numeric', + 'location' => 'json', + 'minimum' => 1, + 'maximum' => 50, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'Returned if a parameter of the request is incorrectly specified.', + 'class' => 'InvalidParameterException', + ), + array( + 'reason' => 'Returned if the service cannot complete the request.', + 'class' => 'ServiceUnavailableException', + ), + ), + ), + 'DescribeLogStreams' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'DescribeLogStreamsResponse', + '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' => 'Logs_20140328.DescribeLogStreams', + ), + 'logGroupName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 512, + ), + 'logStreamNamePrefix' => array( + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 512, + ), + 'orderBy' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'descending' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'json', + ), + 'nextToken' => array( + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + ), + 'limit' => array( + 'type' => 'numeric', + 'location' => 'json', + 'minimum' => 1, + 'maximum' => 50, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'Returned if a parameter of the request is incorrectly specified.', + 'class' => 'InvalidParameterException', + ), + array( + 'reason' => 'Returned if the specified resource does not exist.', + 'class' => 'ResourceNotFoundException', + ), + array( + 'reason' => 'Returned if the service cannot complete the request.', + 'class' => 'ServiceUnavailableException', + ), + ), + ), + 'DescribeMetricFilters' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'DescribeMetricFiltersResponse', + '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' => 'Logs_20140328.DescribeMetricFilters', + ), + 'logGroupName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 512, + ), + 'filterNamePrefix' => array( + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 512, + ), + 'nextToken' => array( + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + ), + 'limit' => array( + 'type' => 'numeric', + 'location' => 'json', + 'minimum' => 1, + 'maximum' => 50, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'Returned if a parameter of the request is incorrectly specified.', + 'class' => 'InvalidParameterException', + ), + array( + 'reason' => 'Returned if the specified resource does not exist.', + 'class' => 'ResourceNotFoundException', + ), + array( + 'reason' => 'Returned if the service cannot complete the request.', + 'class' => 'ServiceUnavailableException', + ), + ), + ), + 'GetLogEvents' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'GetLogEventsResponse', + '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' => 'Logs_20140328.GetLogEvents', + ), + 'logGroupName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 512, + ), + 'logStreamName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 512, + ), + 'startTime' => array( + 'type' => 'numeric', + 'location' => 'json', + ), + 'endTime' => array( + 'type' => 'numeric', + 'location' => 'json', + ), + 'nextToken' => array( + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + ), + 'limit' => array( + 'type' => 'numeric', + 'location' => 'json', + 'minimum' => 1, + 'maximum' => 10000, + ), + 'startFromHead' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'json', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'Returned if a parameter of the request is incorrectly specified.', + 'class' => 'InvalidParameterException', + ), + array( + 'reason' => 'Returned if the specified resource does not exist.', + 'class' => 'ResourceNotFoundException', + ), + array( + 'reason' => 'Returned if the service cannot complete the request.', + 'class' => 'ServiceUnavailableException', + ), + ), + ), + 'PutLogEvents' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'PutLogEventsResponse', + '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' => 'Logs_20140328.PutLogEvents', + ), + 'logGroupName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 512, + ), + 'logStreamName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 512, + ), + 'logEvents' => array( + 'required' => true, + 'type' => 'array', + 'location' => 'json', + 'minItems' => 1, + 'maxItems' => 10000, + 'items' => array( + 'name' => 'InputLogEvent', + 'type' => 'object', + 'properties' => array( + 'timestamp' => array( + 'required' => true, + 'type' => 'numeric', + ), + 'message' => array( + 'required' => true, + 'type' => 'string', + 'minLength' => 1, + ), + ), + ), + ), + 'sequenceToken' => array( + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'Returned if a parameter of the request is incorrectly specified.', + 'class' => 'InvalidParameterException', + ), + array( + 'class' => 'InvalidSequenceTokenException', + ), + array( + 'class' => 'DataAlreadyAcceptedException', + ), + array( + 'reason' => 'Returned if the specified resource does not exist.', + 'class' => 'ResourceNotFoundException', + ), + array( + 'reason' => 'Returned if multiple requests to update the same resource were in conflict.', + 'class' => 'OperationAbortedException', + ), + array( + 'reason' => 'Returned if the service cannot complete the request.', + 'class' => 'ServiceUnavailableException', + ), + ), + ), + 'PutMetricFilter' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'EmptyOutput', + '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' => 'Logs_20140328.PutMetricFilter', + ), + 'logGroupName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 512, + ), + 'filterName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 512, + ), + 'filterPattern' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'maxLength' => 512, + ), + 'metricTransformations' => array( + 'required' => true, + 'type' => 'array', + 'location' => 'json', + 'minItems' => 1, + 'maxItems' => 1, + 'items' => array( + 'name' => 'MetricTransformation', + 'type' => 'object', + 'properties' => array( + 'metricName' => array( + 'required' => true, + 'type' => 'string', + 'maxLength' => 255, + ), + 'metricNamespace' => array( + 'required' => true, + 'type' => 'string', + 'maxLength' => 255, + ), + 'metricValue' => array( + 'required' => true, + 'type' => 'string', + 'maxLength' => 100, + ), + ), + ), + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'Returned if a parameter of the request is incorrectly specified.', + 'class' => 'InvalidParameterException', + ), + array( + 'reason' => 'Returned if the specified resource does not exist.', + 'class' => 'ResourceNotFoundException', + ), + array( + 'reason' => 'Returned if multiple requests to update the same resource were in conflict.', + 'class' => 'OperationAbortedException', + ), + array( + 'reason' => 'Returned if you have reached the maximum number of resources that can be created.', + 'class' => 'LimitExceededException', + ), + array( + 'reason' => 'Returned if the service cannot complete the request.', + 'class' => 'ServiceUnavailableException', + ), + ), + ), + 'PutRetentionPolicy' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'EmptyOutput', + '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' => 'Logs_20140328.PutRetentionPolicy', + ), + 'logGroupName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 512, + ), + 'retentionInDays' => array( + 'required' => true, + 'type' => 'numeric', + 'location' => 'json', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'Returned if a parameter of the request is incorrectly specified.', + 'class' => 'InvalidParameterException', + ), + array( + 'reason' => 'Returned if the specified resource does not exist.', + 'class' => 'ResourceNotFoundException', + ), + array( + 'reason' => 'Returned if multiple requests to update the same resource were in conflict.', + 'class' => 'OperationAbortedException', + ), + array( + 'reason' => 'Returned if the service cannot complete the request.', + 'class' => 'ServiceUnavailableException', + ), + ), + ), + 'TestMetricFilter' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'TestMetricFilterResponse', + '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' => 'Logs_20140328.TestMetricFilter', + ), + 'filterPattern' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'maxLength' => 512, + ), + 'logEventMessages' => array( + 'required' => true, + 'type' => 'array', + 'location' => 'json', + 'minItems' => 1, + 'maxItems' => 50, + 'items' => array( + 'name' => 'EventMessage', + 'type' => 'string', + 'minLength' => 1, + ), + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'Returned if a parameter of the request is incorrectly specified.', + 'class' => 'InvalidParameterException', + ), + array( + 'reason' => 'Returned if the service cannot complete the request.', + 'class' => 'ServiceUnavailableException', + ), + ), + ), + ), + 'models' => array( + 'EmptyOutput' => array( + 'type' => 'object', + 'additionalProperties' => true, + ), + 'DescribeLogGroupsResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'logGroups' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'LogGroup', + 'type' => 'object', + 'properties' => array( + 'logGroupName' => array( + 'type' => 'string', + ), + 'creationTime' => array( + 'type' => 'numeric', + ), + 'retentionInDays' => array( + 'type' => 'numeric', + ), + 'metricFilterCount' => array( + 'type' => 'numeric', + ), + 'arn' => array( + 'type' => 'string', + ), + 'storedBytes' => array( + 'type' => 'numeric', + ), + ), + ), + ), + 'nextToken' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + ), + 'DescribeLogStreamsResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'logStreams' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'LogStream', + 'type' => 'object', + 'properties' => array( + 'logStreamName' => array( + 'type' => 'string', + ), + 'creationTime' => array( + 'type' => 'numeric', + ), + 'firstEventTimestamp' => array( + 'type' => 'numeric', + ), + 'lastEventTimestamp' => array( + 'type' => 'numeric', + ), + 'lastIngestionTime' => array( + 'type' => 'numeric', + ), + 'uploadSequenceToken' => array( + 'type' => 'string', + ), + 'arn' => array( + 'type' => 'string', + ), + 'storedBytes' => array( + 'type' => 'numeric', + ), + ), + ), + ), + 'nextToken' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + ), + 'DescribeMetricFiltersResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'metricFilters' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'MetricFilter', + 'type' => 'object', + 'properties' => array( + 'filterName' => array( + 'type' => 'string', + ), + 'filterPattern' => array( + 'type' => 'string', + ), + 'metricTransformations' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'MetricTransformation', + 'type' => 'object', + 'properties' => array( + 'metricName' => array( + 'type' => 'string', + ), + 'metricNamespace' => array( + 'type' => 'string', + ), + 'metricValue' => array( + 'type' => 'string', + ), + ), + ), + ), + 'creationTime' => array( + 'type' => 'numeric', + ), + ), + ), + ), + 'nextToken' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + ), + 'GetLogEventsResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'events' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'OutputLogEvent', + 'type' => 'object', + 'properties' => array( + 'timestamp' => array( + 'type' => 'numeric', + ), + 'message' => array( + 'type' => 'string', + ), + 'ingestionTime' => array( + 'type' => 'numeric', + ), + ), + ), + ), + 'nextForwardToken' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'nextBackwardToken' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + ), + 'PutLogEventsResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'nextSequenceToken' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'rejectedLogEventsInfo' => array( + 'type' => 'object', + 'location' => 'json', + 'properties' => array( + 'tooNewLogEventStartIndex' => array( + 'type' => 'numeric', + ), + 'tooOldLogEventEndIndex' => array( + 'type' => 'numeric', + ), + 'expiredLogEventEndIndex' => array( + 'type' => 'numeric', + ), + ), + ), + ), + ), + 'TestMetricFilterResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'matches' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'MetricFilterMatchRecord', + 'type' => 'object', + 'properties' => array( + 'eventNumber' => array( + 'type' => 'numeric', + ), + 'eventMessage' => array( + 'type' => 'string', + ), + 'extractedValues' => array( + 'type' => 'object', + 'additionalProperties' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + ), + ), + 'iterators' => array( + 'DescribeLogGroups' => array( + 'input_token' => 'nextToken', + 'output_token' => 'nextToken', + 'limit_key' => 'limit', + 'result_key' => 'logGroups', + ), + 'DescribeLogStreams' => array( + 'input_token' => 'nextToken', + 'output_token' => 'nextToken', + 'limit_key' => 'limit', + 'result_key' => 'logStreams', + ), + 'DescribeMetricFilters' => array( + 'input_token' => 'nextToken', + 'output_token' => 'nextToken', + 'limit_key' => 'limit', + 'result_key' => 'metricFilters', + ), + 'GetLogEvents' => array( + 'input_token' => 'nextToken', + 'output_token' => 'nextForwardToken', + 'limit_key' => 'limit', + 'result_key' => 'events', + ), + ), +); diff --git a/inc/aws-sdk/Aws/CodeDeploy/CodeDeployClient.php b/inc/aws-sdk/Aws/CodeDeploy/CodeDeployClient.php new file mode 100644 index 0000000..1a9ddcb --- /dev/null +++ b/inc/aws-sdk/Aws/CodeDeploy/CodeDeployClient.php @@ -0,0 +1,90 @@ +setConfig($config) + ->setConfigDefaults(array( + Options::VERSION => self::LATEST_API_VERSION, + Options::SERVICE_DESCRIPTION => __DIR__ . '/Resources/codedeploy-%s.php' + )) + ->setExceptionParser(new JsonQueryExceptionParser) + ->build(); + } +} diff --git a/inc/aws-sdk/Aws/CodeDeploy/Exception/CodeDeployException.php b/inc/aws-sdk/Aws/CodeDeploy/Exception/CodeDeployException.php new file mode 100644 index 0000000..349af93 --- /dev/null +++ b/inc/aws-sdk/Aws/CodeDeploy/Exception/CodeDeployException.php @@ -0,0 +1,10 @@ + '2014-10-06', + 'endpointPrefix' => 'codedeploy', + 'serviceFullName' => 'AWS CodeDeploy', + 'serviceAbbreviation' => 'CodeDeploy', + 'serviceType' => 'json', + 'jsonVersion' => '1.1', + 'targetPrefix' => 'CodeDeploy_20141006.', + 'timestampFormat' => 'unixTimestamp', + 'signatureVersion' => 'v4', + 'namespace' => 'CodeDeploy', + 'operations' => array( + 'AddTagsToOnPremisesInstances' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'EmptyOutput', + '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' => 'CodeDeploy_20141006.AddTagsToOnPremisesInstances', + ), + 'tags' => array( + 'required' => true, + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'Tag', + 'type' => 'object', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + ), + 'Value' => array( + 'type' => 'string', + ), + ), + ), + ), + 'instanceNames' => array( + 'required' => true, + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'InstanceName', + 'type' => 'string', + ), + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'An on-premises instance name was not specified.', + 'class' => 'InstanceNameRequiredException', + ), + array( + 'reason' => 'A tag was not specified.', + 'class' => 'TagRequiredException', + ), + array( + 'reason' => 'The specified tag was specified in an invalid format.', + 'class' => 'InvalidTagException', + ), + array( + 'reason' => 'The maximum allowed number of tags was exceeded.', + 'class' => 'TagLimitExceededException', + ), + array( + 'reason' => 'The maximum number of allowed on-premises instances in a single call was exceeded.', + 'class' => 'InstanceLimitExceededException', + ), + array( + 'reason' => 'The specified on-premises instance is not registered.', + 'class' => 'InstanceNotRegisteredException', + ), + ), + ), + 'BatchGetApplications' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'BatchGetApplicationsOutput', + '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' => 'CodeDeploy_20141006.BatchGetApplications', + ), + 'applicationNames' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'ApplicationName', + 'type' => 'string', + 'minLength' => 1, + 'maxLength' => 100, + ), + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The minimum number of required application names was not specified.', + 'class' => 'ApplicationNameRequiredException', + ), + array( + 'reason' => 'The application name was specified in an invalid format.', + 'class' => 'InvalidApplicationNameException', + ), + array( + 'reason' => 'The application does not exist with the applicable IAM user or AWS account.', + 'class' => 'ApplicationDoesNotExistException', + ), + ), + ), + 'BatchGetDeployments' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'BatchGetDeploymentsOutput', + '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' => 'CodeDeploy_20141006.BatchGetDeployments', + ), + 'deploymentIds' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'DeploymentId', + 'type' => 'string', + ), + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'At least one deployment ID must be specified.', + 'class' => 'DeploymentIdRequiredException', + ), + array( + 'reason' => 'At least one of the deployment IDs was specified in an invalid format.', + 'class' => 'InvalidDeploymentIdException', + ), + ), + ), + 'BatchGetOnPremisesInstances' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'BatchGetOnPremisesInstancesOutput', + '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' => 'CodeDeploy_20141006.BatchGetOnPremisesInstances', + ), + 'instanceNames' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'InstanceName', + 'type' => 'string', + ), + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'An on-premises instance name was not specified.', + 'class' => 'InstanceNameRequiredException', + ), + array( + 'reason' => 'The specified on-premises instance name was specified in an invalid format.', + 'class' => 'InvalidInstanceNameException', + ), + ), + ), + 'CreateApplication' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'CreateApplicationOutput', + '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' => 'CodeDeploy_20141006.CreateApplication', + ), + 'applicationName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 100, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The minimum number of required application names was not specified.', + 'class' => 'ApplicationNameRequiredException', + ), + array( + 'reason' => 'The application name was specified in an invalid format.', + 'class' => 'InvalidApplicationNameException', + ), + array( + 'reason' => 'An application with the specified name already exists with the applicable IAM user or AWS account.', + 'class' => 'ApplicationAlreadyExistsException', + ), + array( + 'reason' => 'More applications were attempted to be created than were allowed.', + 'class' => 'ApplicationLimitExceededException', + ), + ), + ), + 'CreateDeployment' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'CreateDeploymentOutput', + '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' => 'CodeDeploy_20141006.CreateDeployment', + ), + 'applicationName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 100, + ), + 'deploymentGroupName' => array( + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 100, + ), + 'revision' => array( + 'type' => 'object', + 'location' => 'json', + 'properties' => array( + 'revisionType' => array( + 'type' => 'string', + ), + 's3Location' => array( + 'type' => 'object', + 'properties' => array( + 'bucket' => array( + 'type' => 'string', + ), + 'key' => array( + 'type' => 'string', + ), + 'bundleType' => array( + 'type' => 'string', + ), + 'version' => array( + 'type' => 'string', + ), + 'eTag' => array( + 'type' => 'string', + ), + ), + ), + 'gitHubLocation' => array( + 'type' => 'object', + 'properties' => array( + 'repository' => array( + 'type' => 'string', + ), + 'commitId' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + 'deploymentConfigName' => array( + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 100, + ), + 'description' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'ignoreApplicationStopFailures' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'json', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The minimum number of required application names was not specified.', + 'class' => 'ApplicationNameRequiredException', + ), + array( + 'reason' => 'The application name was specified in an invalid format.', + 'class' => 'InvalidApplicationNameException', + ), + array( + 'reason' => 'The application does not exist with the applicable IAM user or AWS account.', + 'class' => 'ApplicationDoesNotExistException', + ), + array( + 'reason' => 'The deployment group name was not specified.', + 'class' => 'DeploymentGroupNameRequiredException', + ), + array( + 'reason' => 'The deployment group name was specified in an invalid format.', + 'class' => 'InvalidDeploymentGroupNameException', + ), + array( + 'reason' => 'The named deployment group does not exist with the applicable IAM user or AWS account.', + 'class' => 'DeploymentGroupDoesNotExistException', + ), + array( + 'reason' => 'The revision ID was not specified.', + 'class' => 'RevisionRequiredException', + ), + array( + 'reason' => 'The revision was specified in an invalid format.', + 'class' => 'InvalidRevisionException', + ), + array( + 'reason' => 'The deployment configuration name was specified in an invalid format.', + 'class' => 'InvalidDeploymentConfigNameException', + ), + array( + 'reason' => 'The deployment configuration does not exist with the applicable IAM user or AWS account.', + 'class' => 'DeploymentConfigDoesNotExistException', + ), + array( + 'reason' => 'The description that was provided is too long.', + 'class' => 'DescriptionTooLongException', + ), + array( + 'reason' => 'The number of allowed deployments was exceeded.', + 'class' => 'DeploymentLimitExceededException', + ), + ), + ), + 'CreateDeploymentConfig' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'CreateDeploymentConfigOutput', + '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' => 'CodeDeploy_20141006.CreateDeploymentConfig', + ), + 'deploymentConfigName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 100, + ), + 'minimumHealthyHosts' => array( + 'type' => 'object', + 'location' => 'json', + 'properties' => array( + '' => array( + ), + ), + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The deployment configuration name was specified in an invalid format.', + 'class' => 'InvalidDeploymentConfigNameException', + ), + array( + 'reason' => 'The deployment configuration name was not specified.', + 'class' => 'DeploymentConfigNameRequiredException', + ), + array( + 'reason' => 'A deployment configuration with the specified name already exists with the applicable IAM user or AWS account.', + 'class' => 'DeploymentConfigAlreadyExistsException', + ), + array( + 'reason' => 'The minimum healthy instances value was specified in an invalid format.', + 'class' => 'InvalidMinimumHealthyHostValueException', + ), + array( + 'reason' => 'The deployment configurations limit was exceeded.', + 'class' => 'DeploymentConfigLimitExceededException', + ), + ), + ), + 'CreateDeploymentGroup' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'CreateDeploymentGroupOutput', + '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' => 'CodeDeploy_20141006.CreateDeploymentGroup', + ), + 'applicationName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 100, + ), + 'deploymentGroupName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 100, + ), + 'deploymentConfigName' => array( + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 100, + ), + 'ec2TagFilters' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'EC2TagFilter', + 'type' => 'object', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + ), + 'Value' => array( + 'type' => 'string', + ), + 'Type' => array( + 'type' => 'string', + ), + ), + ), + ), + 'onPremisesInstanceTagFilters' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'TagFilter', + 'type' => 'object', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + ), + 'Value' => array( + 'type' => 'string', + ), + 'Type' => array( + 'type' => 'string', + ), + ), + ), + ), + 'autoScalingGroups' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'AutoScalingGroupName', + 'type' => 'string', + ), + ), + 'serviceRoleArn' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The minimum number of required application names was not specified.', + 'class' => 'ApplicationNameRequiredException', + ), + array( + 'reason' => 'The application name was specified in an invalid format.', + 'class' => 'InvalidApplicationNameException', + ), + array( + 'reason' => 'The application does not exist with the applicable IAM user or AWS account.', + 'class' => 'ApplicationDoesNotExistException', + ), + array( + 'reason' => 'The deployment group name was not specified.', + 'class' => 'DeploymentGroupNameRequiredException', + ), + array( + 'reason' => 'The deployment group name was specified in an invalid format.', + 'class' => 'InvalidDeploymentGroupNameException', + ), + array( + 'reason' => 'A deployment group with the specified name already exists with the applicable IAM user or AWS account.', + 'class' => 'DeploymentGroupAlreadyExistsException', + ), + array( + 'reason' => 'The tag was specified in an invalid format.', + 'class' => 'InvalidEC2TagException', + ), + array( + 'reason' => 'The specified tag was specified in an invalid format.', + 'class' => 'InvalidTagException', + ), + array( + 'reason' => 'The Auto Scaling group was specified in an invalid format or does not exist.', + 'class' => 'InvalidAutoScalingGroupException', + ), + array( + 'reason' => 'The deployment configuration name was specified in an invalid format.', + 'class' => 'InvalidDeploymentConfigNameException', + ), + array( + 'reason' => 'The deployment configuration does not exist with the applicable IAM user or AWS account.', + 'class' => 'DeploymentConfigDoesNotExistException', + ), + array( + 'reason' => 'The role ID was not specified.', + 'class' => 'RoleRequiredException', + ), + array( + 'reason' => 'The service role ARN was specified in an invalid format. Or, if an Auto Scaling group was specified, the specified service role does not grant the appropriate permissions to Auto Scaling.', + 'class' => 'InvalidRoleException', + ), + array( + 'reason' => 'The deployment groups limit was exceeded.', + 'class' => 'DeploymentGroupLimitExceededException', + ), + ), + ), + 'DeleteApplication' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'EmptyOutput', + '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' => 'CodeDeploy_20141006.DeleteApplication', + ), + 'applicationName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 100, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The minimum number of required application names was not specified.', + 'class' => 'ApplicationNameRequiredException', + ), + array( + 'reason' => 'The application name was specified in an invalid format.', + 'class' => 'InvalidApplicationNameException', + ), + ), + ), + 'DeleteDeploymentConfig' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'EmptyOutput', + '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' => 'CodeDeploy_20141006.DeleteDeploymentConfig', + ), + 'deploymentConfigName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 100, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The deployment configuration name was specified in an invalid format.', + 'class' => 'InvalidDeploymentConfigNameException', + ), + array( + 'reason' => 'The deployment configuration name was not specified.', + 'class' => 'DeploymentConfigNameRequiredException', + ), + array( + 'reason' => 'The deployment configuration is still in use.', + 'class' => 'DeploymentConfigInUseException', + ), + array( + 'reason' => 'An invalid operation was detected.', + 'class' => 'InvalidOperationException', + ), + ), + ), + 'DeleteDeploymentGroup' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'DeleteDeploymentGroupOutput', + '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' => 'CodeDeploy_20141006.DeleteDeploymentGroup', + ), + 'applicationName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 100, + ), + 'deploymentGroupName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 100, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The minimum number of required application names was not specified.', + 'class' => 'ApplicationNameRequiredException', + ), + array( + 'reason' => 'The application name was specified in an invalid format.', + 'class' => 'InvalidApplicationNameException', + ), + array( + 'reason' => 'The deployment group name was not specified.', + 'class' => 'DeploymentGroupNameRequiredException', + ), + array( + 'reason' => 'The deployment group name was specified in an invalid format.', + 'class' => 'InvalidDeploymentGroupNameException', + ), + array( + 'reason' => 'The service role ARN was specified in an invalid format. Or, if an Auto Scaling group was specified, the specified service role does not grant the appropriate permissions to Auto Scaling.', + 'class' => 'InvalidRoleException', + ), + ), + ), + 'DeregisterOnPremisesInstance' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'EmptyOutput', + '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' => 'CodeDeploy_20141006.DeregisterOnPremisesInstance', + ), + 'instanceName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'An on-premises instance name was not specified.', + 'class' => 'InstanceNameRequiredException', + ), + array( + 'reason' => 'The specified on-premises instance name was specified in an invalid format.', + 'class' => 'InvalidInstanceNameException', + ), + ), + ), + 'GetApplication' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'GetApplicationOutput', + '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' => 'CodeDeploy_20141006.GetApplication', + ), + 'applicationName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 100, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The minimum number of required application names was not specified.', + 'class' => 'ApplicationNameRequiredException', + ), + array( + 'reason' => 'The application name was specified in an invalid format.', + 'class' => 'InvalidApplicationNameException', + ), + array( + 'reason' => 'The application does not exist with the applicable IAM user or AWS account.', + 'class' => 'ApplicationDoesNotExistException', + ), + ), + ), + 'GetApplicationRevision' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'GetApplicationRevisionOutput', + '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' => 'CodeDeploy_20141006.GetApplicationRevision', + ), + 'applicationName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 100, + ), + 'revision' => array( + 'required' => true, + 'type' => 'object', + 'location' => 'json', + 'properties' => array( + 'revisionType' => array( + 'type' => 'string', + ), + 's3Location' => array( + 'type' => 'object', + 'properties' => array( + 'bucket' => array( + 'type' => 'string', + ), + 'key' => array( + 'type' => 'string', + ), + 'bundleType' => array( + 'type' => 'string', + ), + 'version' => array( + 'type' => 'string', + ), + 'eTag' => array( + 'type' => 'string', + ), + ), + ), + 'gitHubLocation' => array( + 'type' => 'object', + 'properties' => array( + 'repository' => array( + 'type' => 'string', + ), + 'commitId' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The application does not exist with the applicable IAM user or AWS account.', + 'class' => 'ApplicationDoesNotExistException', + ), + array( + 'reason' => 'The minimum number of required application names was not specified.', + 'class' => 'ApplicationNameRequiredException', + ), + array( + 'reason' => 'The application name was specified in an invalid format.', + 'class' => 'InvalidApplicationNameException', + ), + array( + 'reason' => 'The named revision does not exist with the applicable IAM user or AWS account.', + 'class' => 'RevisionDoesNotExistException', + ), + array( + 'reason' => 'The revision ID was not specified.', + 'class' => 'RevisionRequiredException', + ), + array( + 'reason' => 'The revision was specified in an invalid format.', + 'class' => 'InvalidRevisionException', + ), + ), + ), + 'GetDeployment' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'GetDeploymentOutput', + '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' => 'CodeDeploy_20141006.GetDeployment', + ), + 'deploymentId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'At least one deployment ID must be specified.', + 'class' => 'DeploymentIdRequiredException', + ), + array( + 'reason' => 'At least one of the deployment IDs was specified in an invalid format.', + 'class' => 'InvalidDeploymentIdException', + ), + array( + 'reason' => 'The deployment does not exist with the applicable IAM user or AWS account.', + 'class' => 'DeploymentDoesNotExistException', + ), + ), + ), + 'GetDeploymentConfig' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'GetDeploymentConfigOutput', + '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' => 'CodeDeploy_20141006.GetDeploymentConfig', + ), + 'deploymentConfigName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 100, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The deployment configuration name was specified in an invalid format.', + 'class' => 'InvalidDeploymentConfigNameException', + ), + array( + 'reason' => 'The deployment configuration name was not specified.', + 'class' => 'DeploymentConfigNameRequiredException', + ), + array( + 'reason' => 'The deployment configuration does not exist with the applicable IAM user or AWS account.', + 'class' => 'DeploymentConfigDoesNotExistException', + ), + ), + ), + 'GetDeploymentGroup' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'GetDeploymentGroupOutput', + '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' => 'CodeDeploy_20141006.GetDeploymentGroup', + ), + 'applicationName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 100, + ), + 'deploymentGroupName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 100, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The minimum number of required application names was not specified.', + 'class' => 'ApplicationNameRequiredException', + ), + array( + 'reason' => 'The application name was specified in an invalid format.', + 'class' => 'InvalidApplicationNameException', + ), + array( + 'reason' => 'The application does not exist with the applicable IAM user or AWS account.', + 'class' => 'ApplicationDoesNotExistException', + ), + array( + 'reason' => 'The deployment group name was not specified.', + 'class' => 'DeploymentGroupNameRequiredException', + ), + array( + 'reason' => 'The deployment group name was specified in an invalid format.', + 'class' => 'InvalidDeploymentGroupNameException', + ), + array( + 'reason' => 'The named deployment group does not exist with the applicable IAM user or AWS account.', + 'class' => 'DeploymentGroupDoesNotExistException', + ), + ), + ), + 'GetDeploymentInstance' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'GetDeploymentInstanceOutput', + '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' => 'CodeDeploy_20141006.GetDeploymentInstance', + ), + 'deploymentId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + ), + 'instanceId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'At least one deployment ID must be specified.', + 'class' => 'DeploymentIdRequiredException', + ), + array( + 'reason' => 'The deployment does not exist with the applicable IAM user or AWS account.', + 'class' => 'DeploymentDoesNotExistException', + ), + array( + 'reason' => 'The instance ID was not specified.', + 'class' => 'InstanceIdRequiredException', + ), + array( + 'reason' => 'At least one of the deployment IDs was specified in an invalid format.', + 'class' => 'InvalidDeploymentIdException', + ), + array( + 'reason' => 'The specified instance does not exist in the deployment group.', + 'class' => 'InstanceDoesNotExistException', + ), + ), + ), + 'GetOnPremisesInstance' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'GetOnPremisesInstanceOutput', + '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' => 'CodeDeploy_20141006.GetOnPremisesInstance', + ), + 'instanceName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'An on-premises instance name was not specified.', + 'class' => 'InstanceNameRequiredException', + ), + array( + 'reason' => 'The specified on-premises instance is not registered.', + 'class' => 'InstanceNotRegisteredException', + ), + array( + 'reason' => 'The specified on-premises instance name was specified in an invalid format.', + 'class' => 'InvalidInstanceNameException', + ), + ), + ), + 'ListApplicationRevisions' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'ListApplicationRevisionsOutput', + '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' => 'CodeDeploy_20141006.ListApplicationRevisions', + ), + 'applicationName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 100, + ), + 'sortBy' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'sortOrder' => array( + 'type' => 'string', + 'location' => 'json', + ), + 's3Bucket' => array( + 'type' => 'string', + 'location' => 'json', + ), + 's3KeyPrefix' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'deployed' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'nextToken' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The application does not exist with the applicable IAM user or AWS account.', + 'class' => 'ApplicationDoesNotExistException', + ), + array( + 'reason' => 'The minimum number of required application names was not specified.', + 'class' => 'ApplicationNameRequiredException', + ), + array( + 'reason' => 'The application name was specified in an invalid format.', + 'class' => 'InvalidApplicationNameException', + ), + array( + 'reason' => 'The column name to sort by is either not present or was specified in an invalid format.', + 'class' => 'InvalidSortByException', + ), + array( + 'reason' => 'The sort order was specified in an invalid format.', + 'class' => 'InvalidSortOrderException', + ), + array( + 'reason' => 'The bucket name either doesn\'t exist or was specified in an invalid format.', + 'class' => 'InvalidBucketNameFilterException', + ), + array( + 'reason' => 'The specified key prefix filter was specified in an invalid format.', + 'class' => 'InvalidKeyPrefixFilterException', + ), + array( + 'reason' => 'A bucket name is required but was not provided.', + 'class' => 'BucketNameFilterRequiredException', + ), + array( + 'reason' => 'The deployed state filter was specified in an invalid format.', + 'class' => 'InvalidDeployedStateFilterException', + ), + array( + 'reason' => 'The next token was specified in an invalid format.', + 'class' => 'InvalidNextTokenException', + ), + ), + ), + 'ListApplications' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'ListApplicationsOutput', + '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' => 'CodeDeploy_20141006.ListApplications', + ), + 'nextToken' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The next token was specified in an invalid format.', + 'class' => 'InvalidNextTokenException', + ), + ), + ), + 'ListDeploymentConfigs' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'ListDeploymentConfigsOutput', + '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' => 'CodeDeploy_20141006.ListDeploymentConfigs', + ), + 'nextToken' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The next token was specified in an invalid format.', + 'class' => 'InvalidNextTokenException', + ), + ), + ), + 'ListDeploymentGroups' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'ListDeploymentGroupsOutput', + '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' => 'CodeDeploy_20141006.ListDeploymentGroups', + ), + 'applicationName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 100, + ), + 'nextToken' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The minimum number of required application names was not specified.', + 'class' => 'ApplicationNameRequiredException', + ), + array( + 'reason' => 'The application name was specified in an invalid format.', + 'class' => 'InvalidApplicationNameException', + ), + array( + 'reason' => 'The application does not exist with the applicable IAM user or AWS account.', + 'class' => 'ApplicationDoesNotExistException', + ), + array( + 'reason' => 'The next token was specified in an invalid format.', + 'class' => 'InvalidNextTokenException', + ), + ), + ), + 'ListDeploymentInstances' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'ListDeploymentInstancesOutput', + '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' => 'CodeDeploy_20141006.ListDeploymentInstances', + ), + 'deploymentId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + ), + 'nextToken' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'instanceStatusFilter' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'InstanceStatus', + 'type' => 'string', + ), + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'At least one deployment ID must be specified.', + 'class' => 'DeploymentIdRequiredException', + ), + array( + 'reason' => 'The deployment does not exist with the applicable IAM user or AWS account.', + 'class' => 'DeploymentDoesNotExistException', + ), + array( + 'reason' => 'The specified deployment has not started.', + 'class' => 'DeploymentNotStartedException', + ), + array( + 'reason' => 'The next token was specified in an invalid format.', + 'class' => 'InvalidNextTokenException', + ), + array( + 'reason' => 'At least one of the deployment IDs was specified in an invalid format.', + 'class' => 'InvalidDeploymentIdException', + ), + array( + 'reason' => 'The specified instance status does not exist.', + 'class' => 'InvalidInstanceStatusException', + ), + ), + ), + 'ListDeployments' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'ListDeploymentsOutput', + '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' => 'CodeDeploy_20141006.ListDeployments', + ), + 'applicationName' => array( + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 100, + ), + 'deploymentGroupName' => array( + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 100, + ), + 'includeOnlyStatuses' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'DeploymentStatus', + 'type' => 'string', + ), + ), + 'createTimeRange' => array( + 'type' => 'object', + 'location' => 'json', + 'properties' => array( + 'start' => array( + 'type' => array( + 'object', + 'string', + 'integer', + ), + 'format' => 'timestamp', + ), + 'end' => array( + 'type' => array( + 'object', + 'string', + 'integer', + ), + 'format' => 'timestamp', + ), + ), + ), + 'nextToken' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The minimum number of required application names was not specified.', + 'class' => 'ApplicationNameRequiredException', + ), + array( + 'reason' => 'The application name was specified in an invalid format.', + 'class' => 'InvalidApplicationNameException', + ), + array( + 'reason' => 'The application does not exist with the applicable IAM user or AWS account.', + 'class' => 'ApplicationDoesNotExistException', + ), + array( + 'reason' => 'The deployment group name was specified in an invalid format.', + 'class' => 'InvalidDeploymentGroupNameException', + ), + array( + 'reason' => 'The named deployment group does not exist with the applicable IAM user or AWS account.', + 'class' => 'DeploymentGroupDoesNotExistException', + ), + array( + 'reason' => 'The deployment group name was not specified.', + 'class' => 'DeploymentGroupNameRequiredException', + ), + array( + 'reason' => 'The specified time range was specified in an invalid format.', + 'class' => 'InvalidTimeRangeException', + ), + array( + 'reason' => 'The specified deployment status doesn\'t exist or cannot be determined.', + 'class' => 'InvalidDeploymentStatusException', + ), + array( + 'reason' => 'The next token was specified in an invalid format.', + 'class' => 'InvalidNextTokenException', + ), + ), + ), + 'ListOnPremisesInstances' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'ListOnPremisesInstancesOutput', + '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' => 'CodeDeploy_20141006.ListOnPremisesInstances', + ), + 'registrationStatus' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'tagFilters' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'TagFilter', + 'type' => 'object', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + ), + 'Value' => array( + 'type' => 'string', + ), + 'Type' => array( + 'type' => 'string', + ), + ), + ), + ), + 'nextToken' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The registration status was specified in an invalid format.', + 'class' => 'InvalidRegistrationStatusException', + ), + array( + 'reason' => 'The specified tag filter was specified in an invalid format.', + 'class' => 'InvalidTagFilterException', + ), + array( + 'reason' => 'The next token was specified in an invalid format.', + 'class' => 'InvalidNextTokenException', + ), + ), + ), + 'RegisterApplicationRevision' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'EmptyOutput', + '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' => 'CodeDeploy_20141006.RegisterApplicationRevision', + ), + 'applicationName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 100, + ), + 'description' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'revision' => array( + 'required' => true, + 'type' => 'object', + 'location' => 'json', + 'properties' => array( + 'revisionType' => array( + 'type' => 'string', + ), + 's3Location' => array( + 'type' => 'object', + 'properties' => array( + 'bucket' => array( + 'type' => 'string', + ), + 'key' => array( + 'type' => 'string', + ), + 'bundleType' => array( + 'type' => 'string', + ), + 'version' => array( + 'type' => 'string', + ), + 'eTag' => array( + 'type' => 'string', + ), + ), + ), + 'gitHubLocation' => array( + 'type' => 'object', + 'properties' => array( + 'repository' => array( + 'type' => 'string', + ), + 'commitId' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The application does not exist with the applicable IAM user or AWS account.', + 'class' => 'ApplicationDoesNotExistException', + ), + array( + 'reason' => 'The minimum number of required application names was not specified.', + 'class' => 'ApplicationNameRequiredException', + ), + array( + 'reason' => 'The application name was specified in an invalid format.', + 'class' => 'InvalidApplicationNameException', + ), + array( + 'reason' => 'The description that was provided is too long.', + 'class' => 'DescriptionTooLongException', + ), + array( + 'reason' => 'The revision ID was not specified.', + 'class' => 'RevisionRequiredException', + ), + array( + 'reason' => 'The revision was specified in an invalid format.', + 'class' => 'InvalidRevisionException', + ), + ), + ), + 'RegisterOnPremisesInstance' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'EmptyOutput', + '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' => 'CodeDeploy_20141006.RegisterOnPremisesInstance', + ), + 'instanceName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + ), + 'iamUserArn' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The specified on-premises instance name is already registered.', + 'class' => 'InstanceNameAlreadyRegisteredException', + ), + array( + 'reason' => 'The specified IAM user ARN is already registered with an on-premises instance.', + 'class' => 'IamUserArnAlreadyRegisteredException', + ), + array( + 'reason' => 'An on-premises instance name was not specified.', + 'class' => 'InstanceNameRequiredException', + ), + array( + 'reason' => 'An IAM user ARN was not specified.', + 'class' => 'IamUserArnRequiredException', + ), + array( + 'reason' => 'The specified on-premises instance name was specified in an invalid format.', + 'class' => 'InvalidInstanceNameException', + ), + array( + 'reason' => 'The IAM user ARN was specified in an invalid format.', + 'class' => 'InvalidIamUserArnException', + ), + ), + ), + 'RemoveTagsFromOnPremisesInstances' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'EmptyOutput', + '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' => 'CodeDeploy_20141006.RemoveTagsFromOnPremisesInstances', + ), + 'tags' => array( + 'required' => true, + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'Tag', + 'type' => 'object', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + ), + 'Value' => array( + 'type' => 'string', + ), + ), + ), + ), + 'instanceNames' => array( + 'required' => true, + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'InstanceName', + 'type' => 'string', + ), + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'An on-premises instance name was not specified.', + 'class' => 'InstanceNameRequiredException', + ), + array( + 'reason' => 'A tag was not specified.', + 'class' => 'TagRequiredException', + ), + array( + 'reason' => 'The specified tag was specified in an invalid format.', + 'class' => 'InvalidTagException', + ), + array( + 'reason' => 'The maximum allowed number of tags was exceeded.', + 'class' => 'TagLimitExceededException', + ), + array( + 'reason' => 'The maximum number of allowed on-premises instances in a single call was exceeded.', + 'class' => 'InstanceLimitExceededException', + ), + array( + 'reason' => 'The specified on-premises instance is not registered.', + 'class' => 'InstanceNotRegisteredException', + ), + ), + ), + 'StopDeployment' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'StopDeploymentOutput', + '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' => 'CodeDeploy_20141006.StopDeployment', + ), + 'deploymentId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'At least one deployment ID must be specified.', + 'class' => 'DeploymentIdRequiredException', + ), + array( + 'reason' => 'The deployment does not exist with the applicable IAM user or AWS account.', + 'class' => 'DeploymentDoesNotExistException', + ), + array( + 'reason' => 'The deployment is already completed.', + 'class' => 'DeploymentAlreadyCompletedException', + ), + array( + 'reason' => 'At least one of the deployment IDs was specified in an invalid format.', + 'class' => 'InvalidDeploymentIdException', + ), + ), + ), + 'UpdateApplication' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'EmptyOutput', + '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' => 'CodeDeploy_20141006.UpdateApplication', + ), + 'applicationName' => array( + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 100, + ), + 'newApplicationName' => array( + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 100, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The minimum number of required application names was not specified.', + 'class' => 'ApplicationNameRequiredException', + ), + array( + 'reason' => 'The application name was specified in an invalid format.', + 'class' => 'InvalidApplicationNameException', + ), + array( + 'reason' => 'An application with the specified name already exists with the applicable IAM user or AWS account.', + 'class' => 'ApplicationAlreadyExistsException', + ), + array( + 'reason' => 'The application does not exist with the applicable IAM user or AWS account.', + 'class' => 'ApplicationDoesNotExistException', + ), + ), + ), + 'UpdateDeploymentGroup' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'UpdateDeploymentGroupOutput', + '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' => 'CodeDeploy_20141006.UpdateDeploymentGroup', + ), + 'applicationName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 100, + ), + 'currentDeploymentGroupName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 100, + ), + 'newDeploymentGroupName' => array( + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 100, + ), + 'deploymentConfigName' => array( + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 100, + ), + 'ec2TagFilters' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'EC2TagFilter', + 'type' => 'object', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + ), + 'Value' => array( + 'type' => 'string', + ), + 'Type' => array( + 'type' => 'string', + ), + ), + ), + ), + 'onPremisesInstanceTagFilters' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'TagFilter', + 'type' => 'object', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + ), + 'Value' => array( + 'type' => 'string', + ), + 'Type' => array( + 'type' => 'string', + ), + ), + ), + ), + 'autoScalingGroups' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'AutoScalingGroupName', + 'type' => 'string', + ), + ), + 'serviceRoleArn' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The minimum number of required application names was not specified.', + 'class' => 'ApplicationNameRequiredException', + ), + array( + 'reason' => 'The application name was specified in an invalid format.', + 'class' => 'InvalidApplicationNameException', + ), + array( + 'reason' => 'The application does not exist with the applicable IAM user or AWS account.', + 'class' => 'ApplicationDoesNotExistException', + ), + array( + 'reason' => 'The deployment group name was specified in an invalid format.', + 'class' => 'InvalidDeploymentGroupNameException', + ), + array( + 'reason' => 'A deployment group with the specified name already exists with the applicable IAM user or AWS account.', + 'class' => 'DeploymentGroupAlreadyExistsException', + ), + array( + 'reason' => 'The deployment group name was not specified.', + 'class' => 'DeploymentGroupNameRequiredException', + ), + array( + 'reason' => 'The named deployment group does not exist with the applicable IAM user or AWS account.', + 'class' => 'DeploymentGroupDoesNotExistException', + ), + array( + 'reason' => 'The tag was specified in an invalid format.', + 'class' => 'InvalidEC2TagException', + ), + array( + 'reason' => 'The specified tag was specified in an invalid format.', + 'class' => 'InvalidTagException', + ), + array( + 'reason' => 'The Auto Scaling group was specified in an invalid format or does not exist.', + 'class' => 'InvalidAutoScalingGroupException', + ), + array( + 'reason' => 'The deployment configuration name was specified in an invalid format.', + 'class' => 'InvalidDeploymentConfigNameException', + ), + array( + 'reason' => 'The deployment configuration does not exist with the applicable IAM user or AWS account.', + 'class' => 'DeploymentConfigDoesNotExistException', + ), + array( + 'reason' => 'The service role ARN was specified in an invalid format. Or, if an Auto Scaling group was specified, the specified service role does not grant the appropriate permissions to Auto Scaling.', + 'class' => 'InvalidRoleException', + ), + ), + ), + ), + 'models' => array( + 'EmptyOutput' => array( + 'type' => 'object', + 'additionalProperties' => true, + ), + 'BatchGetApplicationsOutput' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'applicationsInfo' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'ApplicationInfo', + 'type' => 'object', + 'properties' => array( + 'applicationId' => array( + 'type' => 'string', + ), + 'applicationName' => array( + 'type' => 'string', + ), + 'createTime' => array( + 'type' => 'string', + ), + 'linkedToGitHub' => array( + 'type' => 'boolean', + ), + ), + ), + ), + ), + ), + 'BatchGetDeploymentsOutput' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'deploymentsInfo' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'DeploymentInfo', + 'type' => 'object', + 'properties' => array( + 'applicationName' => array( + 'type' => 'string', + ), + 'deploymentGroupName' => array( + 'type' => 'string', + ), + 'deploymentConfigName' => array( + 'type' => 'string', + ), + 'deploymentId' => array( + 'type' => 'string', + ), + 'revision' => array( + 'type' => 'object', + 'properties' => array( + 'revisionType' => array( + 'type' => 'string', + ), + 's3Location' => array( + 'type' => 'object', + 'properties' => array( + 'bucket' => array( + 'type' => 'string', + ), + 'key' => array( + 'type' => 'string', + ), + 'bundleType' => array( + 'type' => 'string', + ), + 'version' => array( + 'type' => 'string', + ), + 'eTag' => array( + 'type' => 'string', + ), + ), + ), + 'gitHubLocation' => array( + 'type' => 'object', + 'properties' => array( + 'repository' => array( + 'type' => 'string', + ), + 'commitId' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + 'status' => array( + 'type' => 'string', + ), + 'errorInformation' => array( + 'type' => 'object', + 'properties' => array( + 'code' => array( + 'type' => 'string', + ), + 'message' => array( + 'type' => 'string', + ), + ), + ), + 'createTime' => array( + 'type' => 'string', + ), + 'startTime' => array( + 'type' => 'string', + ), + 'completeTime' => array( + 'type' => 'string', + ), + 'deploymentOverview' => array( + 'type' => 'object', + 'properties' => array( + 'Pending' => array( + 'type' => 'numeric', + ), + 'InProgress' => array( + 'type' => 'numeric', + ), + 'Succeeded' => array( + 'type' => 'numeric', + ), + 'Failed' => array( + 'type' => 'numeric', + ), + 'Skipped' => array( + 'type' => 'numeric', + ), + ), + ), + 'description' => array( + 'type' => 'string', + ), + 'creator' => array( + 'type' => 'string', + ), + 'ignoreApplicationStopFailures' => array( + 'type' => 'boolean', + ), + ), + ), + ), + ), + ), + 'BatchGetOnPremisesInstancesOutput' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'instanceInfos' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'InstanceInfo', + 'type' => 'object', + 'properties' => array( + 'instanceName' => array( + 'type' => 'string', + ), + 'iamUserArn' => array( + 'type' => 'string', + ), + 'instanceArn' => array( + 'type' => 'string', + ), + 'registerTime' => array( + 'type' => 'string', + ), + 'deregisterTime' => array( + 'type' => 'string', + ), + 'tags' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Tag', + 'type' => 'object', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + ), + 'Value' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + ), + ), + ), + 'CreateApplicationOutput' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'applicationId' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + ), + 'CreateDeploymentOutput' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'deploymentId' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + ), + 'CreateDeploymentConfigOutput' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'deploymentConfigId' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + ), + 'CreateDeploymentGroupOutput' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'deploymentGroupId' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + ), + 'DeleteDeploymentGroupOutput' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'hooksNotCleanedUp' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'AutoScalingGroup', + 'type' => 'object', + 'properties' => array( + 'name' => array( + 'type' => 'string', + ), + 'hook' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + 'GetApplicationOutput' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'application' => array( + 'type' => 'object', + 'location' => 'json', + 'properties' => array( + 'applicationId' => array( + 'type' => 'string', + ), + 'applicationName' => array( + 'type' => 'string', + ), + 'createTime' => array( + 'type' => 'string', + ), + 'linkedToGitHub' => array( + 'type' => 'boolean', + ), + ), + ), + ), + ), + 'GetApplicationRevisionOutput' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'applicationName' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'revision' => array( + 'type' => 'object', + 'location' => 'json', + 'properties' => array( + 'revisionType' => array( + 'type' => 'string', + ), + 's3Location' => array( + 'type' => 'object', + 'properties' => array( + 'bucket' => array( + 'type' => 'string', + ), + 'key' => array( + 'type' => 'string', + ), + 'bundleType' => array( + 'type' => 'string', + ), + 'version' => array( + 'type' => 'string', + ), + 'eTag' => array( + 'type' => 'string', + ), + ), + ), + 'gitHubLocation' => array( + 'type' => 'object', + 'properties' => array( + 'repository' => array( + 'type' => 'string', + ), + 'commitId' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + 'revisionInfo' => array( + 'type' => 'object', + 'location' => 'json', + 'properties' => array( + 'description' => array( + 'type' => 'string', + ), + 'deploymentGroups' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'DeploymentGroupName', + 'type' => 'string', + ), + ), + 'firstUsedTime' => array( + 'type' => 'string', + ), + 'lastUsedTime' => array( + 'type' => 'string', + ), + 'registerTime' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + 'GetDeploymentOutput' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'deploymentInfo' => array( + 'type' => 'object', + 'location' => 'json', + 'properties' => array( + 'applicationName' => array( + 'type' => 'string', + ), + 'deploymentGroupName' => array( + 'type' => 'string', + ), + 'deploymentConfigName' => array( + 'type' => 'string', + ), + 'deploymentId' => array( + 'type' => 'string', + ), + 'revision' => array( + 'type' => 'object', + 'properties' => array( + 'revisionType' => array( + 'type' => 'string', + ), + 's3Location' => array( + 'type' => 'object', + 'properties' => array( + 'bucket' => array( + 'type' => 'string', + ), + 'key' => array( + 'type' => 'string', + ), + 'bundleType' => array( + 'type' => 'string', + ), + 'version' => array( + 'type' => 'string', + ), + 'eTag' => array( + 'type' => 'string', + ), + ), + ), + 'gitHubLocation' => array( + 'type' => 'object', + 'properties' => array( + 'repository' => array( + 'type' => 'string', + ), + 'commitId' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + 'status' => array( + 'type' => 'string', + ), + 'errorInformation' => array( + 'type' => 'object', + 'properties' => array( + 'code' => array( + 'type' => 'string', + ), + 'message' => array( + 'type' => 'string', + ), + ), + ), + 'createTime' => array( + 'type' => 'string', + ), + 'startTime' => array( + 'type' => 'string', + ), + 'completeTime' => array( + 'type' => 'string', + ), + 'deploymentOverview' => array( + 'type' => 'object', + 'properties' => array( + 'Pending' => array( + 'type' => 'numeric', + ), + 'InProgress' => array( + 'type' => 'numeric', + ), + 'Succeeded' => array( + 'type' => 'numeric', + ), + 'Failed' => array( + 'type' => 'numeric', + ), + 'Skipped' => array( + 'type' => 'numeric', + ), + ), + ), + 'description' => array( + 'type' => 'string', + ), + 'creator' => array( + 'type' => 'string', + ), + 'ignoreApplicationStopFailures' => array( + 'type' => 'boolean', + ), + ), + ), + ), + ), + 'GetDeploymentConfigOutput' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'deploymentConfigInfo' => array( + 'type' => 'object', + 'location' => 'json', + 'properties' => array( + 'deploymentConfigId' => array( + 'type' => 'string', + ), + 'deploymentConfigName' => array( + 'type' => 'string', + ), + 'minimumHealthyHosts' => array( + 'type' => 'object', + 'properties' => array( + '' => array( + ), + ), + ), + 'createTime' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + 'GetDeploymentGroupOutput' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'deploymentGroupInfo' => array( + 'type' => 'object', + 'location' => 'json', + 'properties' => array( + 'applicationName' => array( + 'type' => 'string', + ), + 'deploymentGroupId' => array( + 'type' => 'string', + ), + 'deploymentGroupName' => array( + 'type' => 'string', + ), + 'deploymentConfigName' => array( + 'type' => 'string', + ), + 'ec2TagFilters' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'EC2TagFilter', + 'type' => 'object', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + ), + 'Value' => array( + 'type' => 'string', + ), + 'Type' => array( + 'type' => 'string', + ), + ), + ), + ), + 'onPremisesInstanceTagFilters' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'TagFilter', + 'type' => 'object', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + ), + 'Value' => array( + 'type' => 'string', + ), + 'Type' => array( + 'type' => 'string', + ), + ), + ), + ), + 'autoScalingGroups' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'AutoScalingGroup', + 'type' => 'object', + 'properties' => array( + 'name' => array( + 'type' => 'string', + ), + 'hook' => array( + 'type' => 'string', + ), + ), + ), + ), + 'serviceRoleArn' => array( + 'type' => 'string', + ), + 'targetRevision' => array( + 'type' => 'object', + 'properties' => array( + 'revisionType' => array( + 'type' => 'string', + ), + 's3Location' => array( + 'type' => 'object', + 'properties' => array( + 'bucket' => array( + 'type' => 'string', + ), + 'key' => array( + 'type' => 'string', + ), + 'bundleType' => array( + 'type' => 'string', + ), + 'version' => array( + 'type' => 'string', + ), + 'eTag' => array( + 'type' => 'string', + ), + ), + ), + 'gitHubLocation' => array( + 'type' => 'object', + 'properties' => array( + 'repository' => array( + 'type' => 'string', + ), + 'commitId' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + ), + ), + ), + 'GetDeploymentInstanceOutput' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'instanceSummary' => array( + 'type' => 'object', + 'location' => 'json', + 'properties' => array( + 'deploymentId' => array( + 'type' => 'string', + ), + 'instanceId' => array( + 'type' => 'string', + ), + 'status' => array( + 'type' => 'string', + ), + 'lastUpdatedAt' => array( + 'type' => 'string', + ), + 'lifecycleEvents' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'LifecycleEvent', + 'type' => 'object', + 'properties' => array( + 'lifecycleEventName' => array( + 'type' => 'string', + ), + 'diagnostics' => array( + 'type' => 'object', + 'properties' => array( + 'errorCode' => array( + 'type' => 'string', + ), + 'scriptName' => array( + 'type' => 'string', + ), + 'message' => array( + 'type' => 'string', + ), + 'logTail' => array( + 'type' => 'string', + ), + ), + ), + 'startTime' => array( + 'type' => 'string', + ), + 'endTime' => array( + 'type' => 'string', + ), + 'status' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + ), + ), + 'GetOnPremisesInstanceOutput' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'instanceInfo' => array( + 'type' => 'object', + 'location' => 'json', + 'properties' => array( + 'instanceName' => array( + 'type' => 'string', + ), + 'iamUserArn' => array( + 'type' => 'string', + ), + 'instanceArn' => array( + 'type' => 'string', + ), + 'registerTime' => array( + 'type' => 'string', + ), + 'deregisterTime' => array( + 'type' => 'string', + ), + 'tags' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Tag', + 'type' => 'object', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + ), + 'Value' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + ), + ), + 'ListApplicationRevisionsOutput' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'revisions' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'RevisionLocation', + 'type' => 'object', + 'properties' => array( + 'revisionType' => array( + 'type' => 'string', + ), + 's3Location' => array( + 'type' => 'object', + 'properties' => array( + 'bucket' => array( + 'type' => 'string', + ), + 'key' => array( + 'type' => 'string', + ), + 'bundleType' => array( + 'type' => 'string', + ), + 'version' => array( + 'type' => 'string', + ), + 'eTag' => array( + 'type' => 'string', + ), + ), + ), + 'gitHubLocation' => array( + 'type' => 'object', + 'properties' => array( + 'repository' => array( + 'type' => 'string', + ), + 'commitId' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + 'nextToken' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + ), + 'ListApplicationsOutput' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'applications' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'ApplicationName', + 'type' => 'string', + ), + ), + 'nextToken' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + ), + 'ListDeploymentConfigsOutput' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'deploymentConfigsList' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'DeploymentConfigName', + 'type' => 'string', + ), + ), + 'nextToken' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + ), + 'ListDeploymentGroupsOutput' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'applicationName' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'deploymentGroups' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'DeploymentGroupName', + 'type' => 'string', + ), + ), + 'nextToken' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + ), + 'ListDeploymentInstancesOutput' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'instancesList' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'InstanceId', + 'type' => 'string', + ), + ), + 'nextToken' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + ), + 'ListDeploymentsOutput' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'deployments' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'DeploymentId', + 'type' => 'string', + ), + ), + 'nextToken' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + ), + 'ListOnPremisesInstancesOutput' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'instanceNames' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'InstanceName', + 'type' => 'string', + ), + ), + 'nextToken' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + ), + 'StopDeploymentOutput' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'status' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'statusMessage' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + ), + 'UpdateDeploymentGroupOutput' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'hooksNotCleanedUp' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'AutoScalingGroup', + 'type' => 'object', + 'properties' => array( + 'name' => array( + 'type' => 'string', + ), + 'hook' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + ), +); diff --git a/inc/aws-sdk/Aws/CognitoIdentity/CognitoIdentityClient.php b/inc/aws-sdk/Aws/CognitoIdentity/CognitoIdentityClient.php new file mode 100644 index 0000000..d27b779 --- /dev/null +++ b/inc/aws-sdk/Aws/CognitoIdentity/CognitoIdentityClient.php @@ -0,0 +1,83 @@ +setConfig($config) + ->setConfigDefaults(array( + Options::VERSION => self::LATEST_API_VERSION, + Options::SERVICE_DESCRIPTION => __DIR__ . '/Resources/cognitoidentity-%s.php', + )) + ->setExceptionParser(new JsonQueryExceptionParser) + ->build(); + + // Attach a listener to prevent some requests from being signed + $client->getEventDispatcher()->addListener('command.before_send', function (Event $event) { + /** @var AbstractCommand $command */ + $command = $event['command']; + if (in_array($command->getName(), array('GetId', 'GetOpenIdToken', 'UnlinkIdentity'))) { + /** @var EventDispatcher $dispatcher */ + $dispatcher = $command->getRequest()->getEventDispatcher(); + foreach ($dispatcher->getListeners('request.before_send') as $listener) { + if (is_array($listener) && $listener[0] instanceof SignatureListener) { + $dispatcher->removeListener('request.before_send', $listener); + break; + } + } + } + }); + + return $client; + } +} diff --git a/inc/aws-sdk/Aws/CognitoIdentity/Exception/CognitoIdentityException.php b/inc/aws-sdk/Aws/CognitoIdentity/Exception/CognitoIdentityException.php new file mode 100644 index 0000000..145be67 --- /dev/null +++ b/inc/aws-sdk/Aws/CognitoIdentity/Exception/CognitoIdentityException.php @@ -0,0 +1,10 @@ + '2014-06-30', + 'endpointPrefix' => 'cognito-identity', + 'serviceFullName' => 'Amazon Cognito Identity', + 'serviceType' => 'json', + 'jsonVersion' => '1.1', + 'targetPrefix' => 'AWSCognitoIdentityService.', + 'signatureVersion' => 'v4', + 'namespace' => 'CognitoIdentity', + 'operations' => array( + 'CreateIdentityPool' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'IdentityPool', + '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' => 'AWSCognitoIdentityService.CreateIdentityPool', + ), + 'IdentityPoolName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 128, + ), + 'AllowUnauthenticatedIdentities' => array( + 'required' => true, + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'json', + ), + 'SupportedLoginProviders' => array( + 'type' => 'object', + 'location' => 'json', + 'additionalProperties' => array( + 'type' => 'string', + 'minLength' => 1, + 'maxLength' => 128, + 'data' => array( + 'shape_name' => 'IdentityProviderName', + 'key_pattern' => '/[\\w._-]+/', + ), + ), + ), + 'DeveloperProviderName' => array( + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 128, + ), + 'OpenIdConnectProviderARNs' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'ARNString', + 'type' => 'string', + 'minLength' => 20, + 'maxLength' => 2048, + ), + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'Thrown for missing or bad input parameter(s).', + 'class' => 'InvalidParameterException', + ), + array( + 'reason' => 'Thrown when a user is not authorized to access the requested resource.', + 'class' => 'NotAuthorizedException', + ), + array( + 'reason' => 'Thrown when a user tries to use a login which is already linked to another account.', + 'class' => 'ResourceConflictException', + ), + array( + 'reason' => 'Thrown when a request is throttled.', + 'class' => 'TooManyRequestsException', + ), + array( + 'reason' => 'Thrown when the service encounters an error during processing the request.', + 'class' => 'InternalErrorException', + ), + array( + 'reason' => 'Thrown when the total number of user pools has exceeded a preset limit.', + 'class' => 'LimitExceededException', + ), + ), + ), + 'DeleteIdentityPool' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'EmptyOutput', + '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' => 'AWSCognitoIdentityService.DeleteIdentityPool', + ), + 'IdentityPoolId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 50, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'Thrown for missing or bad input parameter(s).', + 'class' => 'InvalidParameterException', + ), + array( + 'reason' => 'Thrown when the requested resource (for example, a dataset or record) does not exist.', + 'class' => 'ResourceNotFoundException', + ), + array( + 'reason' => 'Thrown when a user is not authorized to access the requested resource.', + 'class' => 'NotAuthorizedException', + ), + array( + 'reason' => 'Thrown when a request is throttled.', + 'class' => 'TooManyRequestsException', + ), + array( + 'reason' => 'Thrown when the service encounters an error during processing the request.', + 'class' => 'InternalErrorException', + ), + ), + ), + 'DescribeIdentity' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'IdentityDescription', + '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' => 'AWSCognitoIdentityService.DescribeIdentity', + ), + 'IdentityId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 50, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'Thrown for missing or bad input parameter(s).', + 'class' => 'InvalidParameterException', + ), + array( + 'reason' => 'Thrown when the requested resource (for example, a dataset or record) does not exist.', + 'class' => 'ResourceNotFoundException', + ), + array( + 'reason' => 'Thrown when a user is not authorized to access the requested resource.', + 'class' => 'NotAuthorizedException', + ), + array( + 'reason' => 'Thrown when a request is throttled.', + 'class' => 'TooManyRequestsException', + ), + array( + 'reason' => 'Thrown when the service encounters an error during processing the request.', + 'class' => 'InternalErrorException', + ), + ), + ), + 'DescribeIdentityPool' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'IdentityPool', + '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' => 'AWSCognitoIdentityService.DescribeIdentityPool', + ), + 'IdentityPoolId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 50, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'Thrown for missing or bad input parameter(s).', + 'class' => 'InvalidParameterException', + ), + array( + 'reason' => 'Thrown when the requested resource (for example, a dataset or record) does not exist.', + 'class' => 'ResourceNotFoundException', + ), + array( + 'reason' => 'Thrown when a user is not authorized to access the requested resource.', + 'class' => 'NotAuthorizedException', + ), + array( + 'reason' => 'Thrown when a request is throttled.', + 'class' => 'TooManyRequestsException', + ), + array( + 'reason' => 'Thrown when the service encounters an error during processing the request.', + 'class' => 'InternalErrorException', + ), + ), + ), + 'GetCredentialsForIdentity' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'GetCredentialsForIdentityResponse', + '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' => 'AWSCognitoIdentityService.GetCredentialsForIdentity', + ), + 'IdentityId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 50, + ), + 'Logins' => array( + 'type' => 'object', + 'location' => 'json', + 'additionalProperties' => array( + 'type' => 'string', + 'minLength' => 1, + 'maxLength' => 2048, + 'data' => array( + 'shape_name' => 'IdentityProviderName', + 'key_pattern' => '/[\\w._-]+/', + ), + ), + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'Thrown for missing or bad input parameter(s).', + 'class' => 'InvalidParameterException', + ), + array( + 'reason' => 'Thrown when the requested resource (for example, a dataset or record) does not exist.', + 'class' => 'ResourceNotFoundException', + ), + array( + 'reason' => 'Thrown when a user is not authorized to access the requested resource.', + 'class' => 'NotAuthorizedException', + ), + array( + 'reason' => 'Thrown when a user tries to use a login which is already linked to another account.', + 'class' => 'ResourceConflictException', + ), + array( + 'reason' => 'Thrown when a request is throttled.', + 'class' => 'TooManyRequestsException', + ), + array( + 'reason' => 'Thrown if the identity pool has no role associated for the given auth type (auth/unauth) or if the AssumeRole fails.', + 'class' => 'InvalidIdentityPoolConfigurationException', + ), + array( + 'reason' => 'Thrown when the service encounters an error during processing the request.', + 'class' => 'InternalErrorException', + ), + ), + ), + 'GetId' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'GetIdResponse', + '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' => 'AWSCognitoIdentityService.GetId', + ), + 'AccountId' => array( + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 15, + ), + 'IdentityPoolId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 50, + ), + 'Logins' => array( + 'type' => 'object', + 'location' => 'json', + 'additionalProperties' => array( + 'type' => 'string', + 'minLength' => 1, + 'maxLength' => 2048, + 'data' => array( + 'shape_name' => 'IdentityProviderName', + 'key_pattern' => '/[\\w._-]+/', + ), + ), + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'Thrown for missing or bad input parameter(s).', + 'class' => 'InvalidParameterException', + ), + array( + 'reason' => 'Thrown when the requested resource (for example, a dataset or record) does not exist.', + 'class' => 'ResourceNotFoundException', + ), + array( + 'reason' => 'Thrown when a user is not authorized to access the requested resource.', + 'class' => 'NotAuthorizedException', + ), + array( + 'reason' => 'Thrown when a user tries to use a login which is already linked to another account.', + 'class' => 'ResourceConflictException', + ), + array( + 'reason' => 'Thrown when a request is throttled.', + 'class' => 'TooManyRequestsException', + ), + array( + 'reason' => 'Thrown when the service encounters an error during processing the request.', + 'class' => 'InternalErrorException', + ), + array( + 'reason' => 'Thrown when the total number of user pools has exceeded a preset limit.', + 'class' => 'LimitExceededException', + ), + ), + ), + 'GetIdentityPoolRoles' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'GetIdentityPoolRolesResponse', + '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' => 'AWSCognitoIdentityService.GetIdentityPoolRoles', + ), + 'IdentityPoolId' => array( + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 50, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'Thrown for missing or bad input parameter(s).', + 'class' => 'InvalidParameterException', + ), + array( + 'reason' => 'Thrown when the requested resource (for example, a dataset or record) does not exist.', + 'class' => 'ResourceNotFoundException', + ), + array( + 'reason' => 'Thrown when a user is not authorized to access the requested resource.', + 'class' => 'NotAuthorizedException', + ), + array( + 'reason' => 'Thrown when a user tries to use a login which is already linked to another account.', + 'class' => 'ResourceConflictException', + ), + array( + 'reason' => 'Thrown when a request is throttled.', + 'class' => 'TooManyRequestsException', + ), + array( + 'reason' => 'Thrown when the service encounters an error during processing the request.', + 'class' => 'InternalErrorException', + ), + ), + ), + 'GetOpenIdToken' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'GetOpenIdTokenResponse', + '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' => 'AWSCognitoIdentityService.GetOpenIdToken', + ), + 'IdentityId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 50, + ), + 'Logins' => array( + 'type' => 'object', + 'location' => 'json', + 'additionalProperties' => array( + 'type' => 'string', + 'minLength' => 1, + 'maxLength' => 2048, + 'data' => array( + 'shape_name' => 'IdentityProviderName', + 'key_pattern' => '/[\\w._-]+/', + ), + ), + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'Thrown for missing or bad input parameter(s).', + 'class' => 'InvalidParameterException', + ), + array( + 'reason' => 'Thrown when the requested resource (for example, a dataset or record) does not exist.', + 'class' => 'ResourceNotFoundException', + ), + array( + 'reason' => 'Thrown when a user is not authorized to access the requested resource.', + 'class' => 'NotAuthorizedException', + ), + array( + 'reason' => 'Thrown when a user tries to use a login which is already linked to another account.', + 'class' => 'ResourceConflictException', + ), + array( + 'reason' => 'Thrown when a request is throttled.', + 'class' => 'TooManyRequestsException', + ), + array( + 'reason' => 'Thrown when the service encounters an error during processing the request.', + 'class' => 'InternalErrorException', + ), + ), + ), + 'GetOpenIdTokenForDeveloperIdentity' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'GetOpenIdTokenForDeveloperIdentityResponse', + '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' => 'AWSCognitoIdentityService.GetOpenIdTokenForDeveloperIdentity', + ), + 'IdentityPoolId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 50, + ), + 'IdentityId' => array( + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 50, + ), + 'Logins' => array( + 'required' => true, + 'type' => 'object', + 'location' => 'json', + 'additionalProperties' => array( + 'type' => 'string', + 'minLength' => 1, + 'maxLength' => 2048, + 'data' => array( + 'shape_name' => 'IdentityProviderName', + 'key_pattern' => '/[\\w._-]+/', + ), + ), + ), + 'TokenDuration' => array( + 'type' => 'numeric', + 'location' => 'json', + 'minimum' => 1, + 'maximum' => 86400, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'Thrown for missing or bad input parameter(s).', + 'class' => 'InvalidParameterException', + ), + array( + 'reason' => 'Thrown when the requested resource (for example, a dataset or record) does not exist.', + 'class' => 'ResourceNotFoundException', + ), + array( + 'reason' => 'Thrown when a user is not authorized to access the requested resource.', + 'class' => 'NotAuthorizedException', + ), + array( + 'reason' => 'Thrown when a user tries to use a login which is already linked to another account.', + 'class' => 'ResourceConflictException', + ), + array( + 'reason' => 'Thrown when a request is throttled.', + 'class' => 'TooManyRequestsException', + ), + array( + 'reason' => 'Thrown when the service encounters an error during processing the request.', + 'class' => 'InternalErrorException', + ), + array( + 'reason' => 'The provided developer user identifier is already registered with Cognito under a different identity ID.', + 'class' => 'DeveloperUserAlreadyRegisteredException', + ), + ), + ), + 'ListIdentities' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'ListIdentitiesResponse', + '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' => 'AWSCognitoIdentityService.ListIdentities', + ), + 'IdentityPoolId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 50, + ), + 'MaxResults' => array( + 'required' => true, + 'type' => 'numeric', + 'location' => 'json', + 'minimum' => 1, + 'maximum' => 60, + ), + 'NextToken' => array( + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'Thrown for missing or bad input parameter(s).', + 'class' => 'InvalidParameterException', + ), + array( + 'reason' => 'Thrown when the requested resource (for example, a dataset or record) does not exist.', + 'class' => 'ResourceNotFoundException', + ), + array( + 'reason' => 'Thrown when a user is not authorized to access the requested resource.', + 'class' => 'NotAuthorizedException', + ), + array( + 'reason' => 'Thrown when a request is throttled.', + 'class' => 'TooManyRequestsException', + ), + array( + 'reason' => 'Thrown when the service encounters an error during processing the request.', + 'class' => 'InternalErrorException', + ), + ), + ), + 'ListIdentityPools' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'ListIdentityPoolsResponse', + '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' => 'AWSCognitoIdentityService.ListIdentityPools', + ), + 'MaxResults' => array( + 'required' => true, + 'type' => 'numeric', + 'location' => 'json', + 'minimum' => 1, + 'maximum' => 60, + ), + 'NextToken' => array( + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'Thrown for missing or bad input parameter(s).', + 'class' => 'InvalidParameterException', + ), + array( + 'reason' => 'Thrown when a user is not authorized to access the requested resource.', + 'class' => 'NotAuthorizedException', + ), + array( + 'reason' => 'Thrown when a request is throttled.', + 'class' => 'TooManyRequestsException', + ), + array( + 'reason' => 'Thrown when the service encounters an error during processing the request.', + 'class' => 'InternalErrorException', + ), + ), + ), + 'LookupDeveloperIdentity' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'LookupDeveloperIdentityResponse', + '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' => 'AWSCognitoIdentityService.LookupDeveloperIdentity', + ), + 'IdentityPoolId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 50, + ), + 'IdentityId' => array( + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 50, + ), + 'DeveloperUserIdentifier' => array( + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 1024, + ), + 'MaxResults' => array( + 'type' => 'numeric', + 'location' => 'json', + 'minimum' => 1, + 'maximum' => 60, + ), + 'NextToken' => array( + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'Thrown for missing or bad input parameter(s).', + 'class' => 'InvalidParameterException', + ), + array( + 'reason' => 'Thrown when the requested resource (for example, a dataset or record) does not exist.', + 'class' => 'ResourceNotFoundException', + ), + array( + 'reason' => 'Thrown when a user is not authorized to access the requested resource.', + 'class' => 'NotAuthorizedException', + ), + array( + 'reason' => 'Thrown when a user tries to use a login which is already linked to another account.', + 'class' => 'ResourceConflictException', + ), + array( + 'reason' => 'Thrown when a request is throttled.', + 'class' => 'TooManyRequestsException', + ), + array( + 'reason' => 'Thrown when the service encounters an error during processing the request.', + 'class' => 'InternalErrorException', + ), + ), + ), + 'MergeDeveloperIdentities' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'MergeDeveloperIdentitiesResponse', + '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' => 'AWSCognitoIdentityService.MergeDeveloperIdentities', + ), + 'SourceUserIdentifier' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 1024, + ), + 'DestinationUserIdentifier' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 1024, + ), + 'DeveloperProviderName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 128, + ), + 'IdentityPoolId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 50, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'Thrown for missing or bad input parameter(s).', + 'class' => 'InvalidParameterException', + ), + array( + 'reason' => 'Thrown when the requested resource (for example, a dataset or record) does not exist.', + 'class' => 'ResourceNotFoundException', + ), + array( + 'reason' => 'Thrown when a user is not authorized to access the requested resource.', + 'class' => 'NotAuthorizedException', + ), + array( + 'reason' => 'Thrown when a user tries to use a login which is already linked to another account.', + 'class' => 'ResourceConflictException', + ), + array( + 'reason' => 'Thrown when a request is throttled.', + 'class' => 'TooManyRequestsException', + ), + array( + 'reason' => 'Thrown when the service encounters an error during processing the request.', + 'class' => 'InternalErrorException', + ), + ), + ), + 'SetIdentityPoolRoles' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'EmptyOutput', + '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' => 'AWSCognitoIdentityService.SetIdentityPoolRoles', + ), + 'IdentityPoolId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 50, + ), + 'Roles' => array( + 'required' => true, + 'type' => 'object', + 'location' => 'json', + 'additionalProperties' => array( + 'type' => 'string', + 'minLength' => 20, + 'maxLength' => 2048, + 'data' => array( + 'shape_name' => 'RoleType', + 'key_pattern' => '/(un)?authenticated/', + ), + ), + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'Thrown for missing or bad input parameter(s).', + 'class' => 'InvalidParameterException', + ), + array( + 'reason' => 'Thrown when the requested resource (for example, a dataset or record) does not exist.', + 'class' => 'ResourceNotFoundException', + ), + array( + 'reason' => 'Thrown when a user is not authorized to access the requested resource.', + 'class' => 'NotAuthorizedException', + ), + array( + 'reason' => 'Thrown when a user tries to use a login which is already linked to another account.', + 'class' => 'ResourceConflictException', + ), + array( + 'reason' => 'Thrown when a request is throttled.', + 'class' => 'TooManyRequestsException', + ), + array( + 'reason' => 'Thrown when the service encounters an error during processing the request.', + 'class' => 'InternalErrorException', + ), + ), + ), + 'UnlinkDeveloperIdentity' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'EmptyOutput', + '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' => 'AWSCognitoIdentityService.UnlinkDeveloperIdentity', + ), + 'IdentityId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 50, + ), + 'IdentityPoolId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 50, + ), + 'DeveloperProviderName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 128, + ), + 'DeveloperUserIdentifier' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 1024, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'Thrown for missing or bad input parameter(s).', + 'class' => 'InvalidParameterException', + ), + array( + 'reason' => 'Thrown when the requested resource (for example, a dataset or record) does not exist.', + 'class' => 'ResourceNotFoundException', + ), + array( + 'reason' => 'Thrown when a user is not authorized to access the requested resource.', + 'class' => 'NotAuthorizedException', + ), + array( + 'reason' => 'Thrown when a user tries to use a login which is already linked to another account.', + 'class' => 'ResourceConflictException', + ), + array( + 'reason' => 'Thrown when a request is throttled.', + 'class' => 'TooManyRequestsException', + ), + array( + 'reason' => 'Thrown when the service encounters an error during processing the request.', + 'class' => 'InternalErrorException', + ), + ), + ), + 'UnlinkIdentity' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'EmptyOutput', + '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' => 'AWSCognitoIdentityService.UnlinkIdentity', + ), + 'IdentityId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 50, + ), + 'Logins' => array( + 'required' => true, + 'type' => 'object', + 'location' => 'json', + 'additionalProperties' => array( + 'type' => 'string', + 'minLength' => 1, + 'maxLength' => 2048, + 'data' => array( + 'shape_name' => 'IdentityProviderName', + 'key_pattern' => '/[\\w._-]+/', + ), + ), + ), + 'LoginsToRemove' => array( + 'required' => true, + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'IdentityProviderName', + 'type' => 'string', + 'minLength' => 1, + 'maxLength' => 128, + ), + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'Thrown for missing or bad input parameter(s).', + 'class' => 'InvalidParameterException', + ), + array( + 'reason' => 'Thrown when the requested resource (for example, a dataset or record) does not exist.', + 'class' => 'ResourceNotFoundException', + ), + array( + 'reason' => 'Thrown when a user is not authorized to access the requested resource.', + 'class' => 'NotAuthorizedException', + ), + array( + 'reason' => 'Thrown when a user tries to use a login which is already linked to another account.', + 'class' => 'ResourceConflictException', + ), + array( + 'reason' => 'Thrown when a request is throttled.', + 'class' => 'TooManyRequestsException', + ), + array( + 'reason' => 'Thrown when the service encounters an error during processing the request.', + 'class' => 'InternalErrorException', + ), + ), + ), + 'UpdateIdentityPool' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'IdentityPool', + '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' => 'AWSCognitoIdentityService.UpdateIdentityPool', + ), + 'IdentityPoolId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 50, + ), + 'IdentityPoolName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 128, + ), + 'AllowUnauthenticatedIdentities' => array( + 'required' => true, + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'json', + ), + 'SupportedLoginProviders' => array( + 'type' => 'object', + 'location' => 'json', + 'additionalProperties' => array( + 'type' => 'string', + 'minLength' => 1, + 'maxLength' => 128, + 'data' => array( + 'shape_name' => 'IdentityProviderName', + 'key_pattern' => '/[\\w._-]+/', + ), + ), + ), + 'DeveloperProviderName' => array( + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 128, + ), + 'OpenIdConnectProviderARNs' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'ARNString', + 'type' => 'string', + 'minLength' => 20, + 'maxLength' => 2048, + ), + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'Thrown for missing or bad input parameter(s).', + 'class' => 'InvalidParameterException', + ), + array( + 'reason' => 'Thrown when the requested resource (for example, a dataset or record) does not exist.', + 'class' => 'ResourceNotFoundException', + ), + array( + 'reason' => 'Thrown when a user is not authorized to access the requested resource.', + 'class' => 'NotAuthorizedException', + ), + array( + 'reason' => 'Thrown when a user tries to use a login which is already linked to another account.', + 'class' => 'ResourceConflictException', + ), + array( + 'reason' => 'Thrown when a request is throttled.', + 'class' => 'TooManyRequestsException', + ), + array( + 'reason' => 'Thrown when the service encounters an error during processing the request.', + 'class' => 'InternalErrorException', + ), + ), + ), + ), + 'models' => array( + 'IdentityPool' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'IdentityPoolId' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'IdentityPoolName' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'AllowUnauthenticatedIdentities' => array( + 'type' => 'boolean', + 'location' => 'json', + ), + 'SupportedLoginProviders' => array( + 'type' => 'object', + 'location' => 'json', + 'additionalProperties' => array( + 'type' => 'string', + ), + ), + 'DeveloperProviderName' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'OpenIdConnectProviderARNs' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'ARNString', + 'type' => 'string', + ), + ), + ), + ), + 'EmptyOutput' => array( + 'type' => 'object', + 'additionalProperties' => true, + ), + 'IdentityDescription' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'IdentityId' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'Logins' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'IdentityProviderName', + 'type' => 'string', + ), + ), + 'CreationDate' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'LastModifiedDate' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + ), + 'GetCredentialsForIdentityResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'IdentityId' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'Credentials' => array( + 'type' => 'object', + 'location' => 'json', + 'properties' => array( + 'AccessKeyId' => array( + 'type' => 'string', + ), + 'SecretKey' => array( + 'type' => 'string', + ), + 'SessionToken' => array( + 'type' => 'string', + ), + 'Expiration' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + 'GetIdResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'IdentityId' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + ), + 'GetIdentityPoolRolesResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'IdentityPoolId' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'Roles' => array( + 'type' => 'object', + 'location' => 'json', + 'additionalProperties' => array( + 'type' => 'string', + ), + ), + ), + ), + 'GetOpenIdTokenResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'IdentityId' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'Token' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + ), + 'GetOpenIdTokenForDeveloperIdentityResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'IdentityId' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'Token' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + ), + 'ListIdentitiesResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'IdentityPoolId' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'Identities' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'IdentityDescription', + 'type' => 'object', + 'properties' => array( + 'IdentityId' => array( + 'type' => 'string', + ), + 'Logins' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'IdentityProviderName', + 'type' => 'string', + ), + ), + 'CreationDate' => array( + 'type' => 'string', + ), + 'LastModifiedDate' => array( + 'type' => 'string', + ), + ), + ), + ), + 'NextToken' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + ), + 'ListIdentityPoolsResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'IdentityPools' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'IdentityPoolShortDescription', + 'type' => 'object', + 'properties' => array( + 'IdentityPoolId' => array( + 'type' => 'string', + ), + 'IdentityPoolName' => array( + 'type' => 'string', + ), + ), + ), + ), + 'NextToken' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + ), + 'LookupDeveloperIdentityResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'IdentityId' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'DeveloperUserIdentifierList' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'DeveloperUserIdentifier', + 'type' => 'string', + ), + ), + 'NextToken' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + ), + 'MergeDeveloperIdentitiesResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'IdentityId' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + ), + ), +); diff --git a/inc/aws-sdk/Aws/CognitoSync/CognitoSyncClient.php b/inc/aws-sdk/Aws/CognitoSync/CognitoSyncClient.php new file mode 100644 index 0000000..9492407 --- /dev/null +++ b/inc/aws-sdk/Aws/CognitoSync/CognitoSyncClient.php @@ -0,0 +1,60 @@ +setConfig($config) + ->setConfigDefaults(array( + Options::VERSION => self::LATEST_API_VERSION, + Options::SERVICE_DESCRIPTION => __DIR__ . '/Resources/cognitosync-%s.php', + )) + ->setExceptionParser(new JsonRestExceptionParser) + ->build(); + } +} diff --git a/inc/aws-sdk/Aws/CognitoSync/Exception/CognitoSyncException.php b/inc/aws-sdk/Aws/CognitoSync/Exception/CognitoSyncException.php new file mode 100644 index 0000000..f968a91 --- /dev/null +++ b/inc/aws-sdk/Aws/CognitoSync/Exception/CognitoSyncException.php @@ -0,0 +1,10 @@ + '2014-06-30', + 'endpointPrefix' => 'cognito-sync', + 'serviceFullName' => 'Amazon Cognito Sync', + 'serviceType' => 'rest-json', + 'jsonVersion' => '1.1', + 'signatureVersion' => 'v4', + 'namespace' => 'CognitoSync', + 'operations' => array( + 'BulkPublish' => array( + 'httpMethod' => 'POST', + 'uri' => '/identitypools/{IdentityPoolId}/bulkpublish', + 'class' => 'Guzzle\\Service\\Command\\OperationCommand', + 'responseClass' => 'BulkPublishResponse', + 'responseType' => 'model', + 'parameters' => array( + 'IdentityPoolId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'uri', + 'minLength' => 1, + 'maxLength' => 50, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'Thrown when a user is not authorized to access the requested resource.', + 'class' => 'NotAuthorizedException', + ), + array( + 'reason' => 'Thrown when a request parameter does not comply with the associated constraints.', + 'class' => 'InvalidParameterException', + ), + array( + 'reason' => 'Thrown if the resource doesn\'t exist.', + 'class' => 'ResourceNotFoundException', + ), + array( + 'reason' => 'Indicates an internal service error.', + 'class' => 'InternalErrorException', + ), + array( + 'reason' => 'An exception thrown when there is an IN_PROGRESS bulk publish operation for the given identity pool.', + 'class' => 'DuplicateRequestException', + ), + array( + 'reason' => 'An exception thrown when a bulk publish operation is requested less than 24 hours after a previous bulk publish operation completed successfully.', + 'class' => 'AlreadyStreamedException', + ), + ), + ), + 'DeleteDataset' => array( + 'httpMethod' => 'DELETE', + 'uri' => '/identitypools/{IdentityPoolId}/identities/{IdentityId}/datasets/{DatasetName}', + 'class' => 'Guzzle\\Service\\Command\\OperationCommand', + 'responseClass' => 'DeleteDatasetResponse', + 'responseType' => 'model', + 'parameters' => array( + 'IdentityPoolId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'uri', + 'minLength' => 1, + 'maxLength' => 50, + ), + 'IdentityId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'uri', + 'minLength' => 1, + 'maxLength' => 50, + ), + 'DatasetName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'uri', + 'minLength' => 1, + 'maxLength' => 128, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'Thrown when a user is not authorized to access the requested resource.', + 'class' => 'NotAuthorizedException', + ), + array( + 'reason' => 'Thrown when a request parameter does not comply with the associated constraints.', + 'class' => 'InvalidParameterException', + ), + array( + 'reason' => 'Thrown if the resource doesn\'t exist.', + 'class' => 'ResourceNotFoundException', + ), + array( + 'reason' => 'Indicates an internal service error.', + 'class' => 'InternalErrorException', + ), + array( + 'reason' => 'Thrown if the request is throttled.', + 'class' => 'TooManyRequestsException', + ), + array( + 'reason' => 'Thrown if an update can\'t be applied because the resource was changed by another call and this would result in a conflict.', + 'class' => 'ResourceConflictException', + ), + ), + ), + 'DescribeDataset' => array( + 'httpMethod' => 'GET', + 'uri' => '/identitypools/{IdentityPoolId}/identities/{IdentityId}/datasets/{DatasetName}', + 'class' => 'Guzzle\\Service\\Command\\OperationCommand', + 'responseClass' => 'DescribeDatasetResponse', + 'responseType' => 'model', + 'parameters' => array( + 'IdentityPoolId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'uri', + 'minLength' => 1, + 'maxLength' => 50, + ), + 'IdentityId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'uri', + 'minLength' => 1, + 'maxLength' => 50, + ), + 'DatasetName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'uri', + 'minLength' => 1, + 'maxLength' => 128, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'Thrown when a user is not authorized to access the requested resource.', + 'class' => 'NotAuthorizedException', + ), + array( + 'reason' => 'Thrown when a request parameter does not comply with the associated constraints.', + 'class' => 'InvalidParameterException', + ), + array( + 'reason' => 'Thrown if the resource doesn\'t exist.', + 'class' => 'ResourceNotFoundException', + ), + array( + 'reason' => 'Indicates an internal service error.', + 'class' => 'InternalErrorException', + ), + array( + 'reason' => 'Thrown if the request is throttled.', + 'class' => 'TooManyRequestsException', + ), + ), + ), + 'DescribeIdentityPoolUsage' => array( + 'httpMethod' => 'GET', + 'uri' => '/identitypools/{IdentityPoolId}', + 'class' => 'Guzzle\\Service\\Command\\OperationCommand', + 'responseClass' => 'DescribeIdentityPoolUsageResponse', + 'responseType' => 'model', + 'parameters' => array( + 'IdentityPoolId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'uri', + 'minLength' => 1, + 'maxLength' => 50, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'Thrown when a user is not authorized to access the requested resource.', + 'class' => 'NotAuthorizedException', + ), + array( + 'reason' => 'Thrown when a request parameter does not comply with the associated constraints.', + 'class' => 'InvalidParameterException', + ), + array( + 'reason' => 'Thrown if the resource doesn\'t exist.', + 'class' => 'ResourceNotFoundException', + ), + array( + 'reason' => 'Indicates an internal service error.', + 'class' => 'InternalErrorException', + ), + array( + 'reason' => 'Thrown if the request is throttled.', + 'class' => 'TooManyRequestsException', + ), + ), + ), + 'DescribeIdentityUsage' => array( + 'httpMethod' => 'GET', + 'uri' => '/identitypools/{IdentityPoolId}/identities/{IdentityId}', + 'class' => 'Guzzle\\Service\\Command\\OperationCommand', + 'responseClass' => 'DescribeIdentityUsageResponse', + 'responseType' => 'model', + 'parameters' => array( + 'IdentityPoolId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'uri', + 'minLength' => 1, + 'maxLength' => 50, + ), + 'IdentityId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'uri', + 'minLength' => 1, + 'maxLength' => 50, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'Thrown when a user is not authorized to access the requested resource.', + 'class' => 'NotAuthorizedException', + ), + array( + 'reason' => 'Thrown when a request parameter does not comply with the associated constraints.', + 'class' => 'InvalidParameterException', + ), + array( + 'reason' => 'Thrown if the resource doesn\'t exist.', + 'class' => 'ResourceNotFoundException', + ), + array( + 'reason' => 'Indicates an internal service error.', + 'class' => 'InternalErrorException', + ), + array( + 'reason' => 'Thrown if the request is throttled.', + 'class' => 'TooManyRequestsException', + ), + ), + ), + 'GetBulkPublishDetails' => array( + 'httpMethod' => 'POST', + 'uri' => '/identitypools/{IdentityPoolId}/getBulkPublishDetails', + 'class' => 'Guzzle\\Service\\Command\\OperationCommand', + 'responseClass' => 'GetBulkPublishDetailsResponse', + 'responseType' => 'model', + 'parameters' => array( + 'IdentityPoolId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'uri', + 'minLength' => 1, + 'maxLength' => 50, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'Thrown when a user is not authorized to access the requested resource.', + 'class' => 'NotAuthorizedException', + ), + array( + 'reason' => 'Thrown when a request parameter does not comply with the associated constraints.', + 'class' => 'InvalidParameterException', + ), + array( + 'reason' => 'Thrown if the resource doesn\'t exist.', + 'class' => 'ResourceNotFoundException', + ), + array( + 'reason' => 'Indicates an internal service error.', + 'class' => 'InternalErrorException', + ), + ), + ), + 'GetCognitoEvents' => array( + 'httpMethod' => 'GET', + 'uri' => '/identitypools/{IdentityPoolId}/events', + 'class' => 'Guzzle\\Service\\Command\\OperationCommand', + 'responseClass' => 'GetCognitoEventsResponse', + 'responseType' => 'model', + 'parameters' => array( + 'IdentityPoolId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'uri', + 'minLength' => 1, + 'maxLength' => 50, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'Thrown when a request parameter does not comply with the associated constraints.', + 'class' => 'InvalidParameterException', + ), + array( + 'reason' => 'Thrown if the resource doesn\'t exist.', + 'class' => 'ResourceNotFoundException', + ), + array( + 'reason' => 'Thrown when a user is not authorized to access the requested resource.', + 'class' => 'NotAuthorizedException', + ), + array( + 'reason' => 'Indicates an internal service error.', + 'class' => 'InternalErrorException', + ), + array( + 'reason' => 'Thrown if the request is throttled.', + 'class' => 'TooManyRequestsException', + ), + ), + ), + 'GetIdentityPoolConfiguration' => array( + 'httpMethod' => 'GET', + 'uri' => '/identitypools/{IdentityPoolId}/configuration', + 'class' => 'Guzzle\\Service\\Command\\OperationCommand', + 'responseClass' => 'GetIdentityPoolConfigurationResponse', + 'responseType' => 'model', + 'parameters' => array( + 'IdentityPoolId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'uri', + 'minLength' => 1, + 'maxLength' => 50, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'Thrown when a user is not authorized to access the requested resource.', + 'class' => 'NotAuthorizedException', + ), + array( + 'reason' => 'Thrown when a request parameter does not comply with the associated constraints.', + 'class' => 'InvalidParameterException', + ), + array( + 'reason' => 'Thrown if the resource doesn\'t exist.', + 'class' => 'ResourceNotFoundException', + ), + array( + 'reason' => 'Indicates an internal service error.', + 'class' => 'InternalErrorException', + ), + array( + 'reason' => 'Thrown if the request is throttled.', + 'class' => 'TooManyRequestsException', + ), + ), + ), + 'ListDatasets' => array( + 'httpMethod' => 'GET', + 'uri' => '/identitypools/{IdentityPoolId}/identities/{IdentityId}/datasets', + 'class' => 'Guzzle\\Service\\Command\\OperationCommand', + 'responseClass' => 'ListDatasetsResponse', + 'responseType' => 'model', + 'parameters' => array( + 'IdentityPoolId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'uri', + 'minLength' => 1, + 'maxLength' => 50, + ), + 'IdentityId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'uri', + 'minLength' => 1, + 'maxLength' => 50, + ), + 'NextToken' => array( + 'type' => 'string', + 'location' => 'query', + 'sentAs' => 'nextToken', + ), + 'MaxResults' => array( + 'type' => 'numeric', + 'location' => 'query', + 'sentAs' => 'maxResults', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'Thrown when a user is not authorized to access the requested resource.', + 'class' => 'NotAuthorizedException', + ), + array( + 'reason' => 'Thrown when a request parameter does not comply with the associated constraints.', + 'class' => 'InvalidParameterException', + ), + array( + 'reason' => 'Indicates an internal service error.', + 'class' => 'InternalErrorException', + ), + array( + 'reason' => 'Thrown if the request is throttled.', + 'class' => 'TooManyRequestsException', + ), + ), + ), + 'ListIdentityPoolUsage' => array( + 'httpMethod' => 'GET', + 'uri' => '/identitypools', + 'class' => 'Guzzle\\Service\\Command\\OperationCommand', + 'responseClass' => 'ListIdentityPoolUsageResponse', + 'responseType' => 'model', + 'parameters' => array( + 'NextToken' => array( + 'type' => 'string', + 'location' => 'query', + 'sentAs' => 'nextToken', + ), + 'MaxResults' => array( + 'type' => 'numeric', + 'location' => 'query', + 'sentAs' => 'maxResults', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'Thrown when a user is not authorized to access the requested resource.', + 'class' => 'NotAuthorizedException', + ), + array( + 'reason' => 'Thrown when a request parameter does not comply with the associated constraints.', + 'class' => 'InvalidParameterException', + ), + array( + 'reason' => 'Indicates an internal service error.', + 'class' => 'InternalErrorException', + ), + array( + 'reason' => 'Thrown if the request is throttled.', + 'class' => 'TooManyRequestsException', + ), + ), + ), + 'ListRecords' => array( + 'httpMethod' => 'GET', + 'uri' => '/identitypools/{IdentityPoolId}/identities/{IdentityId}/datasets/{DatasetName}/records', + 'class' => 'Guzzle\\Service\\Command\\OperationCommand', + 'responseClass' => 'ListRecordsResponse', + 'responseType' => 'model', + 'parameters' => array( + 'IdentityPoolId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'uri', + 'minLength' => 1, + 'maxLength' => 50, + ), + 'IdentityId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'uri', + 'minLength' => 1, + 'maxLength' => 50, + ), + 'DatasetName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'uri', + 'minLength' => 1, + 'maxLength' => 128, + ), + 'LastSyncCount' => array( + 'type' => 'numeric', + 'location' => 'query', + 'sentAs' => 'lastSyncCount', + ), + 'NextToken' => array( + 'type' => 'string', + 'location' => 'query', + 'sentAs' => 'nextToken', + ), + 'MaxResults' => array( + 'type' => 'numeric', + 'location' => 'query', + 'sentAs' => 'maxResults', + ), + 'SyncSessionToken' => array( + 'type' => 'string', + 'location' => 'query', + 'sentAs' => 'syncSessionToken', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'Thrown when a request parameter does not comply with the associated constraints.', + 'class' => 'InvalidParameterException', + ), + array( + 'reason' => 'Thrown when a user is not authorized to access the requested resource.', + 'class' => 'NotAuthorizedException', + ), + array( + 'reason' => 'Thrown if the request is throttled.', + 'class' => 'TooManyRequestsException', + ), + array( + 'reason' => 'Indicates an internal service error.', + 'class' => 'InternalErrorException', + ), + ), + ), + 'RegisterDevice' => array( + 'httpMethod' => 'POST', + 'uri' => '/identitypools/{IdentityPoolId}/identity/{IdentityId}/device', + 'class' => 'Guzzle\\Service\\Command\\OperationCommand', + 'responseClass' => 'RegisterDeviceResponse', + 'responseType' => 'model', + 'parameters' => array( + 'IdentityPoolId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'uri', + 'minLength' => 1, + 'maxLength' => 50, + ), + 'IdentityId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'uri', + 'minLength' => 1, + 'maxLength' => 50, + ), + 'Platform' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + ), + 'Token' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'Thrown when a user is not authorized to access the requested resource.', + 'class' => 'NotAuthorizedException', + ), + array( + 'reason' => 'Thrown when a request parameter does not comply with the associated constraints.', + 'class' => 'InvalidParameterException', + ), + array( + 'reason' => 'Thrown if the resource doesn\'t exist.', + 'class' => 'ResourceNotFoundException', + ), + array( + 'reason' => 'Indicates an internal service error.', + 'class' => 'InternalErrorException', + ), + array( + 'class' => 'InvalidConfigurationException', + ), + array( + 'reason' => 'Thrown if the request is throttled.', + 'class' => 'TooManyRequestsException', + ), + ), + ), + 'SetCognitoEvents' => array( + 'httpMethod' => 'POST', + 'uri' => '/identitypools/{IdentityPoolId}/events', + 'class' => 'Guzzle\\Service\\Command\\OperationCommand', + 'responseClass' => 'EmptyOutput', + 'responseType' => 'model', + 'parameters' => array( + 'IdentityPoolId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'uri', + 'minLength' => 1, + 'maxLength' => 50, + ), + 'Events' => array( + 'required' => true, + 'type' => 'object', + 'location' => 'json', + 'additionalProperties' => array( + 'type' => 'string', + 'data' => array( + 'shape_name' => 'CognitoEventType', + ), + ), + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'Thrown when a request parameter does not comply with the associated constraints.', + 'class' => 'InvalidParameterException', + ), + array( + 'reason' => 'Thrown if the resource doesn\'t exist.', + 'class' => 'ResourceNotFoundException', + ), + array( + 'reason' => 'Thrown when a user is not authorized to access the requested resource.', + 'class' => 'NotAuthorizedException', + ), + array( + 'reason' => 'Indicates an internal service error.', + 'class' => 'InternalErrorException', + ), + array( + 'reason' => 'Thrown if the request is throttled.', + 'class' => 'TooManyRequestsException', + ), + ), + ), + 'SetIdentityPoolConfiguration' => array( + 'httpMethod' => 'POST', + 'uri' => '/identitypools/{IdentityPoolId}/configuration', + 'class' => 'Guzzle\\Service\\Command\\OperationCommand', + 'responseClass' => 'SetIdentityPoolConfigurationResponse', + 'responseType' => 'model', + 'parameters' => array( + 'IdentityPoolId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'uri', + 'minLength' => 1, + 'maxLength' => 50, + ), + 'PushSync' => array( + 'type' => 'object', + 'location' => 'json', + 'properties' => array( + 'ApplicationArns' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'ApplicationArn', + 'type' => 'string', + ), + ), + 'RoleArn' => array( + 'type' => 'string', + 'minLength' => 20, + 'maxLength' => 2048, + ), + ), + ), + 'CognitoStreams' => array( + 'type' => 'object', + 'location' => 'json', + 'properties' => array( + 'StreamName' => array( + 'type' => 'string', + 'minLength' => 1, + 'maxLength' => 128, + ), + 'RoleArn' => array( + 'type' => 'string', + 'minLength' => 20, + 'maxLength' => 2048, + ), + 'StreamingStatus' => array( + 'type' => 'string', + ), + ), + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'Thrown when a user is not authorized to access the requested resource.', + 'class' => 'NotAuthorizedException', + ), + array( + 'reason' => 'Thrown when a request parameter does not comply with the associated constraints.', + 'class' => 'InvalidParameterException', + ), + array( + 'reason' => 'Thrown if the resource doesn\'t exist.', + 'class' => 'ResourceNotFoundException', + ), + array( + 'reason' => 'Indicates an internal service error.', + 'class' => 'InternalErrorException', + ), + array( + 'reason' => 'Thrown if the request is throttled.', + 'class' => 'TooManyRequestsException', + ), + ), + ), + 'SubscribeToDataset' => array( + 'httpMethod' => 'POST', + 'uri' => '/identitypools/{IdentityPoolId}/identities/{IdentityId}/datasets/{DatasetName}/subscriptions/{DeviceId}', + 'class' => 'Guzzle\\Service\\Command\\OperationCommand', + 'responseClass' => 'EmptyOutput', + 'responseType' => 'model', + 'parameters' => array( + 'IdentityPoolId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'uri', + 'minLength' => 1, + 'maxLength' => 50, + ), + 'IdentityId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'uri', + 'minLength' => 1, + 'maxLength' => 50, + ), + 'DatasetName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'uri', + 'minLength' => 1, + 'maxLength' => 128, + ), + 'DeviceId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'uri', + 'minLength' => 1, + 'maxLength' => 256, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'Thrown when a user is not authorized to access the requested resource.', + 'class' => 'NotAuthorizedException', + ), + array( + 'reason' => 'Thrown when a request parameter does not comply with the associated constraints.', + 'class' => 'InvalidParameterException', + ), + array( + 'reason' => 'Thrown if the resource doesn\'t exist.', + 'class' => 'ResourceNotFoundException', + ), + array( + 'reason' => 'Indicates an internal service error.', + 'class' => 'InternalErrorException', + ), + array( + 'class' => 'InvalidConfigurationException', + ), + array( + 'reason' => 'Thrown if the request is throttled.', + 'class' => 'TooManyRequestsException', + ), + ), + ), + 'UnsubscribeFromDataset' => array( + 'httpMethod' => 'DELETE', + 'uri' => '/identitypools/{IdentityPoolId}/identities/{IdentityId}/datasets/{DatasetName}/subscriptions/{DeviceId}', + 'class' => 'Guzzle\\Service\\Command\\OperationCommand', + 'responseClass' => 'EmptyOutput', + 'responseType' => 'model', + 'parameters' => array( + 'IdentityPoolId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'uri', + 'minLength' => 1, + 'maxLength' => 50, + ), + 'IdentityId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'uri', + 'minLength' => 1, + 'maxLength' => 50, + ), + 'DatasetName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'uri', + 'minLength' => 1, + 'maxLength' => 128, + ), + 'DeviceId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'uri', + 'minLength' => 1, + 'maxLength' => 256, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'Thrown when a user is not authorized to access the requested resource.', + 'class' => 'NotAuthorizedException', + ), + array( + 'reason' => 'Thrown when a request parameter does not comply with the associated constraints.', + 'class' => 'InvalidParameterException', + ), + array( + 'reason' => 'Thrown if the resource doesn\'t exist.', + 'class' => 'ResourceNotFoundException', + ), + array( + 'reason' => 'Indicates an internal service error.', + 'class' => 'InternalErrorException', + ), + array( + 'class' => 'InvalidConfigurationException', + ), + array( + 'reason' => 'Thrown if the request is throttled.', + 'class' => 'TooManyRequestsException', + ), + ), + ), + 'UpdateRecords' => array( + 'httpMethod' => 'POST', + 'uri' => '/identitypools/{IdentityPoolId}/identities/{IdentityId}/datasets/{DatasetName}', + 'class' => 'Guzzle\\Service\\Command\\OperationCommand', + 'responseClass' => 'UpdateRecordsResponse', + 'responseType' => 'model', + 'parameters' => array( + 'IdentityPoolId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'uri', + 'minLength' => 1, + 'maxLength' => 50, + ), + 'IdentityId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'uri', + 'minLength' => 1, + 'maxLength' => 50, + ), + 'DatasetName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'uri', + 'minLength' => 1, + 'maxLength' => 128, + ), + 'DeviceId' => array( + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 256, + ), + 'RecordPatches' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'RecordPatch', + 'type' => 'object', + 'properties' => array( + 'Op' => array( + 'required' => true, + 'type' => 'string', + ), + 'Key' => array( + 'required' => true, + 'type' => 'string', + 'minLength' => 1, + 'maxLength' => 1024, + ), + 'Value' => array( + 'type' => 'string', + 'maxLength' => 1048575, + ), + 'SyncCount' => array( + 'required' => true, + 'type' => 'numeric', + ), + 'DeviceLastModifiedDate' => array( + 'type' => array( + 'object', + 'string', + 'integer', + ), + 'format' => 'date-time', + ), + ), + ), + ), + 'SyncSessionToken' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + ), + 'ClientContext' => array( + 'type' => 'string', + 'location' => 'header', + 'sentAs' => 'x-amz-Client-Context', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'Thrown when a request parameter does not comply with the associated constraints.', + 'class' => 'InvalidParameterException', + ), + array( + 'reason' => 'Thrown when the limit on the number of objects or operations has been exceeded.', + 'class' => 'LimitExceededException', + ), + array( + 'reason' => 'Thrown when a user is not authorized to access the requested resource.', + 'class' => 'NotAuthorizedException', + ), + array( + 'reason' => 'Thrown if the resource doesn\'t exist.', + 'class' => 'ResourceNotFoundException', + ), + array( + 'reason' => 'Thrown if an update can\'t be applied because the resource was changed by another call and this would result in a conflict.', + 'class' => 'ResourceConflictException', + ), + array( + 'reason' => 'The AWS Lambda function returned invalid output or an exception.', + 'class' => 'InvalidLambdaFunctionOutputException', + ), + array( + 'reason' => 'AWS Lambda throttled your account, please contact AWS Support', + 'class' => 'LambdaThrottledException', + ), + array( + 'reason' => 'Thrown if the request is throttled.', + 'class' => 'TooManyRequestsException', + ), + array( + 'reason' => 'Indicates an internal service error.', + 'class' => 'InternalErrorException', + ), + ), + ), + ), + 'models' => array( + 'BulkPublishResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'IdentityPoolId' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + ), + 'DeleteDatasetResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'Dataset' => array( + 'type' => 'object', + 'location' => 'json', + 'properties' => array( + 'IdentityId' => array( + 'type' => 'string', + ), + 'DatasetName' => array( + 'type' => 'string', + ), + 'CreationDate' => array( + 'type' => 'string', + ), + 'LastModifiedDate' => array( + 'type' => 'string', + ), + 'LastModifiedBy' => array( + 'type' => 'string', + ), + 'DataStorage' => array( + 'type' => 'numeric', + ), + 'NumRecords' => array( + 'type' => 'numeric', + ), + ), + ), + ), + ), + 'DescribeDatasetResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'Dataset' => array( + 'type' => 'object', + 'location' => 'json', + 'properties' => array( + 'IdentityId' => array( + 'type' => 'string', + ), + 'DatasetName' => array( + 'type' => 'string', + ), + 'CreationDate' => array( + 'type' => 'string', + ), + 'LastModifiedDate' => array( + 'type' => 'string', + ), + 'LastModifiedBy' => array( + 'type' => 'string', + ), + 'DataStorage' => array( + 'type' => 'numeric', + ), + 'NumRecords' => array( + 'type' => 'numeric', + ), + ), + ), + ), + ), + 'DescribeIdentityPoolUsageResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'IdentityPoolUsage' => array( + 'type' => 'object', + 'location' => 'json', + 'properties' => array( + 'IdentityPoolId' => array( + 'type' => 'string', + ), + 'SyncSessionsCount' => array( + 'type' => 'numeric', + ), + 'DataStorage' => array( + 'type' => 'numeric', + ), + 'LastModifiedDate' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + 'DescribeIdentityUsageResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'IdentityUsage' => array( + 'type' => 'object', + 'location' => 'json', + 'properties' => array( + 'IdentityId' => array( + 'type' => 'string', + ), + 'IdentityPoolId' => array( + 'type' => 'string', + ), + 'LastModifiedDate' => array( + 'type' => 'string', + ), + 'DatasetCount' => array( + 'type' => 'numeric', + ), + 'DataStorage' => array( + 'type' => 'numeric', + ), + ), + ), + ), + ), + 'GetBulkPublishDetailsResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'IdentityPoolId' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'BulkPublishStartTime' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'BulkPublishCompleteTime' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'BulkPublishStatus' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'FailureMessage' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + ), + 'GetCognitoEventsResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'Events' => array( + 'type' => 'object', + 'location' => 'json', + 'additionalProperties' => array( + 'type' => 'string', + ), + ), + ), + ), + 'GetIdentityPoolConfigurationResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'IdentityPoolId' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'PushSync' => array( + 'type' => 'object', + 'location' => 'json', + 'properties' => array( + 'ApplicationArns' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'ApplicationArn', + 'type' => 'string', + ), + ), + 'RoleArn' => array( + 'type' => 'string', + ), + ), + ), + 'CognitoStreams' => array( + 'type' => 'object', + 'location' => 'json', + 'properties' => array( + 'StreamName' => array( + 'type' => 'string', + ), + 'RoleArn' => array( + 'type' => 'string', + ), + 'StreamingStatus' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + 'ListDatasetsResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'Datasets' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'Dataset', + 'type' => 'object', + 'properties' => array( + 'IdentityId' => array( + 'type' => 'string', + ), + 'DatasetName' => array( + 'type' => 'string', + ), + 'CreationDate' => array( + 'type' => 'string', + ), + 'LastModifiedDate' => array( + 'type' => 'string', + ), + 'LastModifiedBy' => array( + 'type' => 'string', + ), + 'DataStorage' => array( + 'type' => 'numeric', + ), + 'NumRecords' => array( + 'type' => 'numeric', + ), + ), + ), + ), + 'Count' => array( + 'type' => 'numeric', + 'location' => 'json', + ), + 'NextToken' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + ), + 'ListIdentityPoolUsageResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'IdentityPoolUsages' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'IdentityPoolUsage', + 'type' => 'object', + 'properties' => array( + 'IdentityPoolId' => array( + 'type' => 'string', + ), + 'SyncSessionsCount' => array( + 'type' => 'numeric', + ), + 'DataStorage' => array( + 'type' => 'numeric', + ), + 'LastModifiedDate' => array( + 'type' => 'string', + ), + ), + ), + ), + 'MaxResults' => array( + 'type' => 'numeric', + 'location' => 'json', + ), + 'Count' => array( + 'type' => 'numeric', + 'location' => 'json', + ), + 'NextToken' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + ), + 'ListRecordsResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'Records' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'Record', + 'type' => 'object', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + ), + 'Value' => array( + 'type' => 'string', + ), + 'SyncCount' => array( + 'type' => 'numeric', + ), + 'LastModifiedDate' => array( + 'type' => 'string', + ), + 'LastModifiedBy' => array( + 'type' => 'string', + ), + 'DeviceLastModifiedDate' => array( + 'type' => 'string', + ), + ), + ), + ), + 'NextToken' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'Count' => array( + 'type' => 'numeric', + 'location' => 'json', + ), + 'DatasetSyncCount' => array( + 'type' => 'numeric', + 'location' => 'json', + ), + 'LastModifiedBy' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'MergedDatasetNames' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'String', + 'type' => 'string', + ), + ), + 'DatasetExists' => array( + 'type' => 'boolean', + 'location' => 'json', + ), + 'DatasetDeletedAfterRequestedSyncCount' => array( + 'type' => 'boolean', + 'location' => 'json', + ), + 'SyncSessionToken' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + ), + 'RegisterDeviceResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'DeviceId' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + ), + 'EmptyOutput' => array( + 'type' => 'object', + 'additionalProperties' => true, + ), + 'SetIdentityPoolConfigurationResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'IdentityPoolId' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'PushSync' => array( + 'type' => 'object', + 'location' => 'json', + 'properties' => array( + 'ApplicationArns' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'ApplicationArn', + 'type' => 'string', + ), + ), + 'RoleArn' => array( + 'type' => 'string', + ), + ), + ), + 'CognitoStreams' => array( + 'type' => 'object', + 'location' => 'json', + 'properties' => array( + 'StreamName' => array( + 'type' => 'string', + ), + 'RoleArn' => array( + 'type' => 'string', + ), + 'StreamingStatus' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + 'UpdateRecordsResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'Records' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'Record', + 'type' => 'object', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + ), + 'Value' => array( + 'type' => 'string', + ), + 'SyncCount' => array( + 'type' => 'numeric', + ), + 'LastModifiedDate' => array( + 'type' => 'string', + ), + 'LastModifiedBy' => array( + 'type' => 'string', + ), + 'DeviceLastModifiedDate' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + ), +); diff --git a/inc/aws-sdk/Aws/Common/Aws.php b/inc/aws-sdk/Aws/Common/Aws.php index d98e2c3..2e65f29 100755 --- a/inc/aws-sdk/Aws/Common/Aws.php +++ b/inc/aws-sdk/Aws/Common/Aws.php @@ -28,7 +28,7 @@ class Aws extends ServiceBuilder /** * @var string Current version of the SDK */ - const VERSION = '2.4.10'; + const VERSION = '2.8.3'; /** * Create a new service locator for the AWS SDK @@ -95,6 +95,7 @@ class Aws extends ServiceBuilder * @param string|null $namespace The namespace that the facades should be mounted to. Defaults to global namespace * * @return Aws + * @deprecated "Facades" are being removed in version 3.0 of the SDK. */ public function enableFacades($namespace = null) { diff --git a/inc/aws-sdk/Aws/Common/Client/AbstractClient.php b/inc/aws-sdk/Aws/Common/Client/AbstractClient.php index 9bfcbe8..f0d6c30 100755 --- a/inc/aws-sdk/Aws/Common/Client/AbstractClient.php +++ b/inc/aws-sdk/Aws/Common/Client/AbstractClient.php @@ -17,11 +17,11 @@ namespace Aws\Common\Client; use Aws\Common\Aws; -use Aws\Common\Credentials\Credentials; use Aws\Common\Credentials\CredentialsInterface; use Aws\Common\Enum\ClientOptions as Options; use Aws\Common\Exception\InvalidArgumentException; use Aws\Common\Exception\TransferException; +use Aws\Common\RulesEndpointProvider; use Aws\Common\Signature\EndpointSignatureInterface; use Aws\Common\Signature\SignatureInterface; use Aws\Common\Signature\SignatureListener; @@ -31,6 +31,7 @@ use Aws\Common\Waiter\WaiterFactoryInterface; use Aws\Common\Waiter\WaiterConfigFactory; use Guzzle\Common\Collection; use Guzzle\Http\Exception\CurlException; +use Guzzle\Http\QueryAggregator\DuplicateAggregator; use Guzzle\Service\Client; use Guzzle\Service\Description\ServiceDescriptionInterface; @@ -39,21 +40,18 @@ use Guzzle\Service\Description\ServiceDescriptionInterface; */ abstract class AbstractClient extends Client implements AwsClientInterface { - /** - * @var CredentialsInterface AWS credentials - */ + /** @var CredentialsInterface AWS credentials */ protected $credentials; - /** - * @var SignatureInterface Signature implementation of the service - */ + /** @var SignatureInterface Signature implementation of the service */ protected $signature; - /** - * @var WaiterFactoryInterface Factory used to create waiter classes - */ + /** @var WaiterFactoryInterface Factory used to create waiter classes */ protected $waiterFactory; + /** @var DuplicateAggregator Cached query aggregator*/ + protected $aggregator; + /** * {@inheritdoc} */ @@ -78,6 +76,7 @@ abstract class AbstractClient extends Client implements AwsClientInterface parent::__construct($config->get(Options::BASE_URL), $config); $this->credentials = $credentials; $this->signature = $signature; + $this->aggregator = new DuplicateAggregator(); // Make sure the user agent is prefixed by the SDK version $this->setUserAgent('aws-sdk-php2/' . Aws::VERSION, true); @@ -108,44 +107,29 @@ abstract class AbstractClient extends Client implements AwsClientInterface /** * Get an endpoint for a specific region from a service description - * - * @param ServiceDescriptionInterface $description Service description - * @param string $region Region of the endpoint - * @param string $scheme URL scheme - * - * @return string - * @throws InvalidArgumentException + * @deprecated This function will no longer be updated to work with new regions. */ public static function getEndpoint(ServiceDescriptionInterface $description, $region, $scheme) { - $service = $description->getData('serviceFullName'); - // Lookup the region in the service description - if (!($regions = $description->getData('regions'))) { - throw new InvalidArgumentException("No regions found in the {$service} description"); - } - // Ensure that the region exists for the service - if (!isset($regions[$region])) { - throw new InvalidArgumentException("{$region} is not a valid region for {$service}"); - } - // Ensure that the scheme is valid - if ($regions[$region][$scheme] == false) { - throw new InvalidArgumentException("{$scheme} is not a valid URI scheme for {$service} in {$region}"); + try { + $service = $description->getData('endpointPrefix'); + $provider = RulesEndpointProvider::fromDefaults(); + $result = $provider(array( + 'service' => $service, + 'region' => $region, + 'scheme' => $scheme + )); + return $result['endpoint']; + } catch (\InvalidArgumentException $e) { + throw new InvalidArgumentException($e->getMessage(), 0, $e); } - - return $scheme . '://' . $regions[$region]['hostname']; } - /** - * {@inheritdoc} - */ public function getCredentials() { return $this->credentials; } - /** - * {@inheritdoc} - */ public function setCredentials(CredentialsInterface $credentials) { $formerCredentials = $this->credentials; @@ -160,49 +144,52 @@ abstract class AbstractClient extends Client implements AwsClientInterface return $this; } - /** - * {@inheritdoc} - */ public function getSignature() { return $this->signature; } - /** - * {@inheritdoc} - */ public function getRegions() { return $this->serviceDescription->getData('regions'); } - /** - * {@inheritdoc} - */ public function getRegion() { return $this->getConfig(Options::REGION); } - /** - * {@inheritdoc} - */ public function setRegion($region) { $config = $this->getConfig(); $formerRegion = $config->get(Options::REGION); $global = $this->serviceDescription->getData('globalEndpoint'); + $provider = $config->get('endpoint_provider'); + + if (!$provider) { + throw new \RuntimeException('No endpoint provider configured'); + } // Only change the region if the service does not have a global endpoint if (!$global || $this->serviceDescription->getData('namespace') === 'S3') { - $baseUrl = self::getEndpoint($this->serviceDescription, $region, $config->get(Options::SCHEME)); - $this->setBaseUrl($baseUrl); - $config->set(Options::BASE_URL, $baseUrl)->set(Options::REGION, $region); + + $endpoint = call_user_func( + $provider, + array( + 'scheme' => $config->get(Options::SCHEME), + 'region' => $region, + 'service' => $config->get(Options::SERVICE) + ) + ); + + $this->setBaseUrl($endpoint['endpoint']); + $config->set(Options::BASE_URL, $endpoint['endpoint']); + $config->set(Options::REGION, $region); // Update the signature if necessary $signature = $this->getSignature(); if ($signature instanceof EndpointSignatureInterface) { - /** @var $signature EndpointSignatureInterface */ + /** @var EndpointSignatureInterface $signature */ $signature->setRegionName($region); } @@ -216,9 +203,6 @@ abstract class AbstractClient extends Client implements AwsClientInterface return $this; } - /** - * {@inheritdoc} - */ public function waitUntil($waiter, array $input = array()) { $this->getWaiter($waiter, $input)->wait(); @@ -226,9 +210,6 @@ abstract class AbstractClient extends Client implements AwsClientInterface return $this; } - /** - * {@inheritdoc} - */ public function getWaiter($waiter, array $input = array()) { return $this->getWaiterFactory()->build($waiter) @@ -236,9 +217,6 @@ abstract class AbstractClient extends Client implements AwsClientInterface ->setConfig($input); } - /** - * {@inheritdoc} - */ public function setWaiterFactory(WaiterFactoryInterface $waiterFactory) { $this->waiterFactory = $waiterFactory; @@ -246,9 +224,6 @@ abstract class AbstractClient extends Client implements AwsClientInterface return $this; } - /** - * {@inheritdoc} - */ public function getWaiterFactory() { if (!$this->waiterFactory) { @@ -258,16 +233,14 @@ abstract class AbstractClient extends Client implements AwsClientInterface new WaiterClassFactory(substr($clientClass, 0, strrpos($clientClass, '\\')) . '\\Waiter') )); if ($this->getDescription()) { - $this->waiterFactory->addFactory(new WaiterConfigFactory($this->getDescription()->getData('waiters'))); + $waiterConfig = $this->getDescription()->getData('waiters') ?: array(); + $this->waiterFactory->addFactory(new WaiterConfigFactory($waiterConfig)); } } return $this->waiterFactory; } - /** - * {@inheritdoc} - */ public function getApiVersion() { return $this->serviceDescription->getApiVersion(); @@ -290,4 +263,21 @@ abstract class AbstractClient extends Client implements AwsClientInterface throw $wrapped; } } + + /** + * Ensures that the duplicate query string aggregator is used so that + * query string values are sent over the wire as foo=bar&foo=baz. + * {@inheritdoc} + */ + public function createRequest( + $method = 'GET', + $uri = null, + $headers = null, + $body = null, + array $options = array() + ) { + $request = parent::createRequest($method, $uri, $headers, $body, $options); + $request->getQuery()->setAggregator($this->aggregator); + return $request; + } } diff --git a/inc/aws-sdk/Aws/Common/Client/ClientBuilder.php b/inc/aws-sdk/Aws/Common/Client/ClientBuilder.php index 478aa0e..34647e9 100755 --- a/inc/aws-sdk/Aws/Common/Client/ClientBuilder.php +++ b/inc/aws-sdk/Aws/Common/Client/ClientBuilder.php @@ -17,18 +17,19 @@ namespace Aws\Common\Client; use Aws\Common\Credentials\Credentials; +use Aws\Common\Credentials\CredentialsInterface; +use Aws\Common\Credentials\NullCredentials; use Aws\Common\Enum\ClientOptions as Options; -use Aws\Common\Enum\Region; use Aws\Common\Exception\ExceptionListener; use Aws\Common\Exception\InvalidArgumentException; use Aws\Common\Exception\NamespaceExceptionFactory; use Aws\Common\Exception\Parser\DefaultXmlExceptionParser; use Aws\Common\Exception\Parser\ExceptionParserInterface; use Aws\Common\Iterator\AwsResourceIteratorFactory; +use Aws\Common\RulesEndpointProvider; use Aws\Common\Signature\EndpointSignatureInterface; use Aws\Common\Signature\SignatureInterface; use Aws\Common\Signature\SignatureV2; -use Aws\Common\Signature\SignatureV3; use Aws\Common\Signature\SignatureV3Https; use Aws\Common\Signature\SignatureV4; use Guzzle\Common\Collection; @@ -37,7 +38,6 @@ use Guzzle\Plugin\Backoff\CurlBackoffStrategy; use Guzzle\Plugin\Backoff\ExponentialBackoffStrategy; use Guzzle\Plugin\Backoff\HttpBackoffStrategy; use Guzzle\Plugin\Backoff\TruncatedBackoffStrategy; -use Guzzle\Service\Client; use Guzzle\Service\Description\ServiceDescription; use Guzzle\Service\Resource\ResourceIteratorClassFactory; use Guzzle\Log\LogAdapterInterface; @@ -89,6 +89,12 @@ class ClientBuilder */ protected $iteratorsConfig = array(); + /** @var string */ + private $clientClass; + + /** @var string */ + private $serviceName; + /** * Factory method for creating the client builder * @@ -109,6 +115,14 @@ class ClientBuilder public function __construct($namespace = null) { $this->clientNamespace = $namespace; + + // Determine service and class name + $this->clientClass = 'Aws\Common\Client\DefaultClient'; + + if ($this->clientNamespace) { + $this->serviceName = substr($this->clientNamespace, strrpos($this->clientNamespace, '\\') + 1); + $this->clientClass = $this->clientNamespace . '\\' . $this->serviceName . 'Client'; + } } /** @@ -199,15 +213,20 @@ class ClientBuilder (self::$commonConfigRequirements + $this->configRequirements) ); - // Resolve endpoint and signature from the config and service description - $description = $this->updateConfigFromDescription($config); - $signature = $this->getSignature($description, $config); + if ($config[Options::VERSION] === 'latest') { + $config[Options::VERSION] = constant("{$this->clientClass}::LATEST_API_VERSION"); + } - // Resolve credentials - if (!$credentials = $config->get('credentials')) { - $credentials = Credentials::factory($config); + if (!isset($config['endpoint_provider'])) { + $config['endpoint_provider'] = RulesEndpointProvider::fromDefaults(); } + // Resolve the endpoint, signature, and credentials + $description = $this->updateConfigFromDescription($config); + $signature = $this->getSignature($description, $config); + $credentials = $this->getCredentials($config); + $this->extractHttpConfig($config); + // Resolve exception parser if (!$this->exceptionParser) { $this->exceptionParser = new DefaultXmlExceptionParser(); @@ -216,24 +235,7 @@ class ClientBuilder // Resolve backoff strategy $backoff = $config->get(Options::BACKOFF); if ($backoff === null) { - $backoff = new BackoffPlugin( - // Retry failed requests up to 3 times if it is determined that the request can be retried - new TruncatedBackoffStrategy(3, - // Retry failed requests with 400-level responses due to throttling - new ThrottlingErrorChecker($this->exceptionParser, - // Retry failed requests with 500-level responses - new HttpBackoffStrategy(array(500, 503, 509), - // Retry failed requests due to transient network or cURL problems - new CurlBackoffStrategy(null, - // Retry requests that failed due to expired credentials - new ExpiredCredentialsChecker($this->exceptionParser, - new ExponentialBackoffStrategy() - ) - ) - ) - ) - ) - ); + $backoff = $this->createDefaultBackoff(); $config->set(Options::BACKOFF, $backoff); } @@ -241,15 +243,8 @@ class ClientBuilder $this->addBackoffLogger($backoff, $config); } - // Determine service and class name - $clientClass = 'Aws\Common\Client\DefaultClient'; - if ($this->clientNamespace) { - $serviceName = substr($this->clientNamespace, strrpos($this->clientNamespace, '\\') + 1); - $clientClass = $this->clientNamespace . '\\' . $serviceName . 'Client'; - } - - /** @var $client AwsClientInterface */ - $client = new $clientClass($credentials, $signature, $config); + /** @var AwsClientInterface $client */ + $client = new $this->clientClass($credentials, $signature, $config); $client->setDescription($description); // Add exception marshaling so that more descriptive exception are thrown @@ -257,7 +252,7 @@ class ClientBuilder $exceptionFactory = new NamespaceExceptionFactory( $this->exceptionParser, "{$this->clientNamespace}\\Exception", - "{$this->clientNamespace}\\Exception\\{$serviceName}Exception" + "{$this->clientNamespace}\\Exception\\{$this->serviceName}Exception" ); $client->addSubscriber(new ExceptionListener($exceptionFactory)); } @@ -369,40 +364,17 @@ class ClientBuilder $this->setIteratorsConfig($iterators); } - // Ensure that the service description has regions - if (!$description->getData('regions')) { - throw new InvalidArgumentException( - 'No regions found in the ' . $description->getData('serviceFullName'). ' description' - ); - } - - // Make sure a valid region is set - $region = $config->get(Options::REGION); - $global = $description->getData('globalEndpoint'); - if (!$global && !$region) { - throw new InvalidArgumentException( - 'A region is required when using ' . $description->getData('serviceFullName') - . '. Set "region" to one of: ' . implode(', ', array_keys($description->getData('regions'))) - ); - } elseif ($global && (!$region || $description->getData('namespace') !== 'S3')) { - $region = Region::US_EAST_1; - $config->set(Options::REGION, $region); - } - - if (!$config->get(Options::BASE_URL)) { - // Set the base URL using the scheme and hostname of the service's region - $config->set(Options::BASE_URL, AbstractClient::getEndpoint( - $description, - $region, - $config->get(Options::SCHEME) - )); - } + $this->handleRegion($config); + $this->handleEndpoint($config); return $description; } /** - * Return an appropriate signature object for a a client based on a description + * Return an appropriate signature object for a a client based on the + * "signature" configuration setting, or the default signature specified in + * a service description. The signature can be set to a valid signature + * version identifier string or an instance of Aws\Common\Signature\SignatureInterface. * * @param ServiceDescription $description Description that holds a signature option * @param Collection $config Configuration options @@ -412,43 +384,143 @@ class ClientBuilder */ protected function getSignature(ServiceDescription $description, Collection $config) { - if (!$signature = $config->get(Options::SIGNATURE)) { - switch ($description->getData('signatureVersion')) { - case 'v2': - $signature = new SignatureV2(); - break; - case 'v3': - $signature = new SignatureV3(); - break; - case 'v3https': - $signature = new SignatureV3Https(); - break; - case 'v4': - $signature = new SignatureV4(); - break; - default: - throw new InvalidArgumentException('Service description does not specify a valid signatureVersion'); + // If a custom signature has not been provided, then use the default + // signature setting specified in the service description. + $signature = $config->get(Options::SIGNATURE) ?: $description->getData('signatureVersion'); + + if (is_string($signature)) { + if ($signature == 'v4') { + $signature = new SignatureV4(); + } elseif ($signature == 'v2') { + $signature = new SignatureV2(); + } elseif ($signature == 'v3https') { + $signature = new SignatureV3Https(); + } else { + throw new InvalidArgumentException("Invalid signature type: {$signature}"); } + } elseif (!($signature instanceof SignatureInterface)) { + throw new InvalidArgumentException('The provided signature is not ' + . 'a signature version string or an instance of ' + . 'Aws\\Common\\Signature\\SignatureInterface'); } // Allow a custom service name or region value to be provided if ($signature instanceof EndpointSignatureInterface) { // Determine the service name to use when signing - if (!$service = $config->get(Options::SIGNATURE_SERVICE)) { - if (!$service = $description->getData('signingName')) { - $service = $description->getData('endpointPrefix'); - } - } - $signature->setServiceName($service); + $signature->setServiceName($config->get(Options::SIGNATURE_SERVICE) + ?: $description->getData('signingName') + ?: $description->getData('endpointPrefix')); // Determine the region to use when signing requests - if (!$region = $config->get(Options::SIGNATURE_REGION)) { - $region = $config->get(Options::REGION); - } - $signature->setRegionName($region); + $signature->setRegionName($config->get(Options::SIGNATURE_REGION) ?: $config->get(Options::REGION)); } return $signature; } + + protected function getCredentials(Collection $config) + { + $credentials = $config->get(Options::CREDENTIALS); + + if (is_array($credentials)) { + $credentials = Credentials::factory($credentials); + } elseif ($credentials === false) { + $credentials = new NullCredentials(); + } elseif (!$credentials instanceof CredentialsInterface) { + $credentials = Credentials::factory($config); + } + + return $credentials; + } + + private function handleRegion(Collection $config) + { + // Make sure a valid region is set + $region = $config[Options::REGION]; + $description = $config[Options::SERVICE_DESCRIPTION]; + $global = $description->getData('globalEndpoint'); + + if (!$global && !$region) { + throw new InvalidArgumentException( + 'A region is required when using ' . $description->getData('serviceFullName') + ); + } elseif ($global && !$region) { + $config[Options::REGION] = 'us-east-1'; + } + } + + private function handleEndpoint(Collection $config) + { + // Alias "endpoint" with "base_url" for forwards compatibility. + if ($config['endpoint']) { + $config[Options::BASE_URL] = $config['endpoint']; + return; + } + + if ($config[Options::BASE_URL]) { + return; + } + + $endpoint = call_user_func( + $config['endpoint_provider'], + array( + 'scheme' => $config[Options::SCHEME], + 'region' => $config[Options::REGION], + 'service' => $config[Options::SERVICE] + ) + ); + + $config[Options::BASE_URL] = $endpoint['endpoint']; + + // Set a signature if one was not explicitly provided. + if (!$config->hasKey(Options::SIGNATURE) + && isset($endpoint['signatureVersion']) + ) { + $config->set(Options::SIGNATURE, $endpoint['signatureVersion']); + } + + // The the signing region if endpoint rule specifies one. + if (isset($endpoint['credentialScope'])) { + $scope = $endpoint['credentialScope']; + if (isset($scope['region'])) { + $config->set(Options::SIGNATURE_REGION, $scope['region']); + } + } + } + + private function createDefaultBackoff() + { + return new BackoffPlugin( + // Retry failed requests up to 3 times if it is determined that the request can be retried + new TruncatedBackoffStrategy(3, + // Retry failed requests with 400-level responses due to throttling + new ThrottlingErrorChecker($this->exceptionParser, + // Retry failed requests due to transient network or cURL problems + new CurlBackoffStrategy(null, + // Retry failed requests with 500-level responses + new HttpBackoffStrategy(array(500, 503, 509), + // Retry requests that failed due to expired credentials + new ExpiredCredentialsChecker($this->exceptionParser, + new ExponentialBackoffStrategy() + ) + ) + ) + ) + ) + ); + } + + private function extractHttpConfig(Collection $config) + { + $http = $config['http']; + + if (!is_array($http)) { + return; + } + + if (isset($http['verify'])) { + $config[Options::SSL_CERT] = $http['verify']; + } + } } diff --git a/inc/aws-sdk/Aws/Common/Client/DefaultClient.php b/inc/aws-sdk/Aws/Common/Client/DefaultClient.php index c0186c3..277f088 100755 --- a/inc/aws-sdk/Aws/Common/Client/DefaultClient.php +++ b/inc/aws-sdk/Aws/Common/Client/DefaultClient.php @@ -42,12 +42,13 @@ class DefaultClient extends AbstractClient * Region and endpoint options (Some services do not require a region while others do. Check the service specific user guide documentation for details): * * - region: Region name (e.g. 'us-east-1', 'us-west-1', 'us-west-2', 'eu-west-1', etc...) - * - scheme: URI Scheme of the base URL (e.g. 'https', 'http') used when base_url is not supplied - * - base_url: Allows you to specify a custom endpoint instead of building one from the region and scheme + * - scheme: URI Scheme of the base URL (e.g. 'https', 'http') used when endpoint is not supplied + * - endpoint: Allows you to specify a custom endpoint instead of building one from the region and scheme * * Generic client options: * - * - ssl.ssl.certificate_authority: Set to true to use the bundled CA cert or pass the full path to an SSL certificate bundle + * - signature: Overrides the signature used by the client. Clients will always choose an appropriate default signature. However, it can be useful to override this with a custom setting. This can be set to "v4", "v3https", "v2" or an instance of Aws\Common\Signature\SignatureInterface. + * - ssl.certificate_authority: Set to true to use the bundled CA cert or pass the full path to an SSL certificate bundle * - curl.options: Associative of CURLOPT_* cURL options to add to each request * - client.backoff.logger: `Guzzle\Log\LogAdapterInterface` object used to log backoff retries. Use 'debug' to emit PHP warnings when a retry is issued. * - client.backoff.logger.template: Optional template to use for exponential backoff log messages. See `Guzzle\Plugin\Backoff\BackoffLogger` for formatting information. diff --git a/inc/aws-sdk/Aws/Common/Client/ExpiredCredentialsChecker.php b/inc/aws-sdk/Aws/Common/Client/ExpiredCredentialsChecker.php index d20f7f8..05b8445 100755 --- a/inc/aws-sdk/Aws/Common/Client/ExpiredCredentialsChecker.php +++ b/inc/aws-sdk/Aws/Common/Client/ExpiredCredentialsChecker.php @@ -63,7 +63,7 @@ class ExpiredCredentialsChecker extends AbstractBackoffStrategy return null; } - /** @var $client AwsClientInterface */ + /** @var AwsClientInterface $client */ $client = $request->getClient(); // Only retry if the credentials can be refreshed if (!($client->getCredentials() instanceof AbstractRefreshableCredentials)) { diff --git a/inc/aws-sdk/Aws/Common/Client/UploadBodyListener.php b/inc/aws-sdk/Aws/Common/Client/UploadBodyListener.php index a99d2fa..10cd825 100755 --- a/inc/aws-sdk/Aws/Common/Client/UploadBodyListener.php +++ b/inc/aws-sdk/Aws/Common/Client/UploadBodyListener.php @@ -71,7 +71,7 @@ class UploadBodyListener implements EventSubscriberInterface */ public function onCommandBeforePrepare(Event $event) { - /** @var $command Command */ + /** @var Command $command */ $command = $event['command']; if (in_array($command->getName(), $this->commands)) { // Get the interesting parameters diff --git a/inc/aws-sdk/Aws/Common/Command/AwsQueryVisitor.php b/inc/aws-sdk/Aws/Common/Command/AwsQueryVisitor.php index 6f79dec..dceaafa 100755 --- a/inc/aws-sdk/Aws/Common/Command/AwsQueryVisitor.php +++ b/inc/aws-sdk/Aws/Common/Command/AwsQueryVisitor.php @@ -12,11 +12,11 @@ use Guzzle\Service\Command\LocationVisitor\Request\AbstractRequestVisitor; */ class AwsQueryVisitor extends AbstractRequestVisitor { - /** - * {@inheritdoc} - */ + private $fqname; + public function visit(CommandInterface $command, RequestInterface $request, Parameter $param, $value) { + $this->fqname = $command->getName(); $query = array(); $this->customResolver($value, $param, $query, $param->getWireName()); $request->addPostFields($query); @@ -90,6 +90,20 @@ class AwsQueryVisitor extends AbstractRequestVisitor */ protected function resolveArray(Parameter $param, array $value, $prefix, array &$query) { + static $serializeEmpty = array( + 'SetLoadBalancerPoliciesForBackendServer' => 1, + 'SetLoadBalancerPoliciesOfListener' => 1, + 'UpdateStack' => 1 + ); + + // For BC, serialize empty lists for specific operations + if (!$value) { + if (isset($serializeEmpty[$this->fqname])) { + $query[$prefix] = ''; + } + return; + } + $offset = $param->getData('offset') ?: 1; foreach ($value as $index => $v) { $index += $offset; diff --git a/inc/aws-sdk/Aws/Common/Credentials/Credentials.php b/inc/aws-sdk/Aws/Common/Credentials/Credentials.php index 7bc7790..f8ab2f7 100755 --- a/inc/aws-sdk/Aws/Common/Credentials/Credentials.php +++ b/inc/aws-sdk/Aws/Common/Credentials/Credentials.php @@ -23,6 +23,7 @@ use Aws\Common\Exception\RuntimeException; use Guzzle\Common\FromConfigInterface; use Guzzle\Cache\CacheAdapterInterface; use Guzzle\Cache\DoctrineCacheAdapter; +use Guzzle\Common\Collection; /** * Basic implementation of the AWSCredentials interface that allows callers to @@ -32,25 +33,19 @@ class Credentials implements CredentialsInterface, FromConfigInterface { const ENV_KEY = 'AWS_ACCESS_KEY_ID'; const ENV_SECRET = 'AWS_SECRET_KEY'; + const ENV_SECRET_ACCESS_KEY = 'AWS_SECRET_ACCESS_KEY'; + const ENV_PROFILE = 'AWS_PROFILE'; - /** - * @var string AWS Access key ID - */ + /** @var string AWS Access Key ID */ protected $key; - /** - * @var string AWS Secret access key - */ + /** @var string AWS Secret Access Key */ protected $secret; - /** - * @var string Security token - */ + /** @var string AWS Security Token */ protected $token; - /** - * @var int Time to die of token - */ + /** @var int Time to die of token */ protected $ttd; /** @@ -65,6 +60,7 @@ class Credentials implements CredentialsInterface, FromConfigInterface Options::SECRET => null, Options::TOKEN => null, Options::TOKEN_TTD => null, + Options::PROFILE => null, Options::CREDENTIALS_CACHE => null, Options::CREDENTIALS_CACHE_KEY => null, Options::CREDENTIALS_CLIENT => null @@ -96,19 +92,7 @@ class Credentials implements CredentialsInterface, FromConfigInterface // Create the credentials object if (!$config[Options::KEY] || !$config[Options::SECRET]) { - // No keys were provided, so attempt to retrieve some from the environment - $envKey = isset($_SERVER[self::ENV_KEY]) ? $_SERVER[self::ENV_KEY] : getenv(self::ENV_KEY); - $envSecret = isset($_SERVER[self::ENV_SECRET]) ? $_SERVER[self::ENV_SECRET] : getenv(self::ENV_SECRET); - if ($envKey && $envSecret) { - // Use credentials set in the environment variables - $credentials = new static($envKey, $envSecret); - } else { - // Use instance profile credentials (available on EC2 instances) - $credentials = new RefreshableInstanceProfileCredentials( - new static('', '', '', 1), - $config[Options::CREDENTIALS_CLIENT] - ); - } + $credentials = self::createFromEnvironment($config); // If no cache key was set, use the crc32 hostname of the server $cacheKey = $cacheKey ?: 'credentials_' . crc32(gethostname()); } else { @@ -126,31 +110,56 @@ class Credentials implements CredentialsInterface, FromConfigInterface // Check if the credentials are refreshable, and if so, configure caching $cache = $config[Options::CREDENTIALS_CACHE]; if ($cacheKey && $cache) { - if ($cache === 'true' || $cache === true) { - // If no cache adapter was provided, then create one for the user - // @codeCoverageIgnoreStart - if (!extension_loaded('apc')) { - throw new RequiredExtensionNotLoadedException('PHP has not been compiled with APC. Unable to cache ' - . 'the credentials.'); - } elseif (!class_exists('Doctrine\Common\Cache\ApcCache')) { - throw new RuntimeException( - 'Cannot set ' . Options::CREDENTIALS_CACHE . ' to true because the Doctrine cache component is ' - . 'not installed. Either install doctrine/cache or pass in an instantiated ' - . 'Guzzle\Cache\CacheAdapterInterface object' - ); - } - // @codeCoverageIgnoreEnd - $cache = new DoctrineCacheAdapter(new \Doctrine\Common\Cache\ApcCache()); - } elseif (!($cache instanceof CacheAdapterInterface)) { - throw new InvalidArgumentException('Unable to utilize caching with the specified options'); - } - // Decorate the credentials with a cache - $credentials = new CacheableCredentials($credentials, $cache, $cacheKey); + $credentials = self::createCache($credentials, $cache, $cacheKey); } return $credentials; } + /** + * Create credentials from the credentials ini file in the HOME directory. + * + * @param string|null $profile Pass a specific profile to use. If no + * profile is specified we will attempt to use + * the value specified in the AWS_PROFILE + * environment variable. If AWS_PROFILE is not + * set, the "default" profile is used. + * @param string|null $filename Pass a string to specify the location of the + * credentials files. If null is passed, the + * SDK will attempt to find the configuration + * file at in your HOME directory at + * ~/.aws/credentials. + * @return CredentialsInterface + * @throws \RuntimeException if the file cannot be found, if the file is + * invalid, or if the profile is invalid. + */ + public static function fromIni($profile = null, $filename = null) + { + if (!$filename) { + $filename = self::getHomeDir() . '/.aws/credentials'; + } + + if (!$profile) { + $profile = self::getEnvVar(self::ENV_PROFILE) ?: 'default'; + } + + if (!is_readable($filename) || ($data = parse_ini_file($filename, true)) === false) { + throw new \RuntimeException("Invalid AWS credentials file: {$filename}."); + } + + if (!isset($data[$profile]['aws_access_key_id']) || !isset($data[$profile]['aws_secret_access_key'])) { + throw new \RuntimeException("Invalid AWS credentials profile {$profile} in {$filename}."); + } + + return new self( + $data[$profile]['aws_access_key_id'], + $data[$profile]['aws_secret_access_key'], + isset($data[$profile]['aws_security_token']) + ? $data[$profile]['aws_security_token'] + : null + ); + } + /** * Constructs a new BasicAWSCredentials object, with the specified AWS * access key and AWS secret key @@ -168,9 +177,6 @@ class Credentials implements CredentialsInterface, FromConfigInterface $this->ttd = $expiration; } - /** - * {@inheritdoc} - */ public function serialize() { return json_encode(array( @@ -181,9 +187,6 @@ class Credentials implements CredentialsInterface, FromConfigInterface )); } - /** - * {@inheritdoc} - */ public function unserialize($serialized) { $data = json_decode($serialized, true); @@ -193,49 +196,31 @@ class Credentials implements CredentialsInterface, FromConfigInterface $this->ttd = $data[Options::TOKEN_TTD]; } - /** - * {@inheritdoc} - */ public function getAccessKeyId() { return $this->key; } - /** - * {@inheritdoc} - */ public function getSecretKey() { return $this->secret; } - /** - * {@inheritdoc} - */ public function getSecurityToken() { return $this->token; } - /** - * {@inheritdoc} - */ public function getExpiration() { return $this->ttd; } - /** - * {@inheritdoc} - */ public function isExpired() { return $this->ttd !== null && time() >= $this->ttd; } - /** - * {@inheritdoc} - */ public function setAccessKeyId($key) { $this->key = $key; @@ -243,9 +228,6 @@ class Credentials implements CredentialsInterface, FromConfigInterface return $this; } - /** - * {@inheritdoc} - */ public function setSecretKey($secret) { $this->secret = $secret; @@ -253,9 +235,6 @@ class Credentials implements CredentialsInterface, FromConfigInterface return $this; } - /** - * {@inheritdoc} - */ public function setSecurityToken($token) { $this->token = $token; @@ -263,13 +242,95 @@ class Credentials implements CredentialsInterface, FromConfigInterface return $this; } - /** - * {@inheritdoc} - */ public function setExpiration($timestamp) { $this->ttd = $timestamp; return $this; } + + /** + * When no keys are provided, attempt to create them based on the + * environment or instance profile credentials. + * + * @param array|Collection $config + * + * @return CredentialsInterface + */ + private static function createFromEnvironment($config) + { + // Get key and secret from ENV variables + $envKey = self::getEnvVar(self::ENV_KEY); + if (!($envSecret = self::getEnvVar(self::ENV_SECRET))) { + // Use AWS_SECRET_ACCESS_KEY if AWS_SECRET_KEY was not set + $envSecret = self::getEnvVar(self::ENV_SECRET_ACCESS_KEY); + } + + // Use credentials from the environment variables if available + if ($envKey && $envSecret) { + return new static($envKey, $envSecret); + } + + try { + // Use credentials from the INI file in HOME directory if available + return self::fromIni($config[Options::PROFILE]); + } catch (\RuntimeException $e) { + // Otherwise, try using instance profile credentials (available on EC2 instances) + return new RefreshableInstanceProfileCredentials( + new static('', '', '', 1), + $config[Options::CREDENTIALS_CLIENT] + ); + } + } + + private static function createCache(CredentialsInterface $credentials, $cache, $cacheKey) + { + if ($cache === 'true' || $cache === true) { + // If no cache adapter was provided, then create one for the user + // @codeCoverageIgnoreStart + if (!extension_loaded('apc')) { + throw new RequiredExtensionNotLoadedException('PHP has not been compiled with APC. Unable to cache ' + . 'the credentials.'); + } elseif (!class_exists('Doctrine\Common\Cache\ApcCache')) { + throw new RuntimeException( + 'Cannot set ' . Options::CREDENTIALS_CACHE . ' to true because the Doctrine cache component is ' + . 'not installed. Either install doctrine/cache or pass in an instantiated ' + . 'Guzzle\Cache\CacheAdapterInterface object' + ); + } + // @codeCoverageIgnoreEnd + $cache = new DoctrineCacheAdapter(new \Doctrine\Common\Cache\ApcCache()); + } elseif (!($cache instanceof CacheAdapterInterface)) { + throw new InvalidArgumentException('Unable to utilize caching with the specified options'); + } + + // Decorate the credentials with a cache + return new CacheableCredentials($credentials, $cache, $cacheKey); + } + + private static function getHomeDir() + { + // On Linux/Unix-like systems, use the HOME environment variable + if ($homeDir = self::getEnvVar('HOME')) { + return $homeDir; + } + + // Get the HOMEDRIVE and HOMEPATH values for Windows hosts + $homeDrive = self::getEnvVar('HOMEDRIVE'); + $homePath = self::getEnvVar('HOMEPATH'); + + return ($homeDrive && $homePath) ? $homeDrive . $homePath : null; + } + + /** + * Fetches the value of an environment variable by checking $_SERVER and getenv(). + * + * @param string $var Name of the environment variable + * + * @return mixed|null + */ + private static function getEnvVar($var) + { + return isset($_SERVER[$var]) ? $_SERVER[$var] : getenv($var); + } } diff --git a/inc/aws-sdk/Aws/Common/Credentials/NullCredentials.php b/inc/aws-sdk/Aws/Common/Credentials/NullCredentials.php new file mode 100644 index 0000000..0656c39 --- /dev/null +++ b/inc/aws-sdk/Aws/Common/Credentials/NullCredentials.php @@ -0,0 +1,68 @@ +client->getInstanceProfileCredentials(); - // Expire the token 1 minute before it actually expires to pre-fetch before expiring + // Expire the token 30 minutes early to pre-fetch before expiring. $this->credentials->setAccessKeyId($credentials->getAccessKeyId()) ->setSecretKey($credentials->getSecretKey()) ->setSecurityToken($credentials->getSecurityToken()) - ->setExpiration($credentials->getExpiration()); + ->setExpiration($credentials->getExpiration() - 1800); } } diff --git a/inc/aws-sdk/Aws/Common/Enum/ClientOptions.php b/inc/aws-sdk/Aws/Common/Enum/ClientOptions.php index 5a94adc..4048cfc 100755 --- a/inc/aws-sdk/Aws/Common/Enum/ClientOptions.php +++ b/inc/aws-sdk/Aws/Common/Enum/ClientOptions.php @@ -24,24 +24,36 @@ use Aws\Common\Enum; class ClientOptions extends Enum { /** - * @var string AWS Access Key ID + * AWS Access Key ID + * + * @deprecated Use "credentials" instead. */ const KEY = 'key'; /** - * @var string AWS secret access key + * AWS secret access key + * + * @deprecated Use "credentials" instead. */ const SECRET = 'secret'; /** - * @var string You can optionally provide a custom `Aws\Common\Credentials\CredentialsInterface` object + * Custom AWS security token to use with request authentication. + * + * @deprecated Use "credentials" instead. + */ + const TOKEN = 'token'; + + /** + * Provide an array of "key", "secret", and "token" or an instance of + * `Aws\Common\Credentials\CredentialsInterface`. */ const CREDENTIALS = 'credentials'; /** - * @var string Custom AWS security token to use with request authentication + * @var string Name of a credential profile to read from your ~/.aws/credentials file */ - const TOKEN = 'token'; + const PROFILE = 'profile'; /** * @var string UNIX timestamp for when the custom credentials expire @@ -81,7 +93,10 @@ class ClientOptions extends Enum const SERVICE = 'service'; /** - * @var string Instead of using a `region` and `scheme`, you can specify a custom base URL for the client + * Instead of using a `region` and `scheme`, you can specify a custom base + * URL for the client. + * + * @deprecated Use the "endpoint" option instead. */ const BASE_URL = 'base_url'; @@ -118,9 +133,10 @@ class ClientOptions extends Enum const BACKOFF_LOGGER_TEMPLATE = 'client.backoff.logger.template'; /** - * @var string Set to true to use the bundled CA cert or pass the full path to an SSL certificate bundle. This - * option should be modified when you encounter curl error code 60. Set to "system" to use the cacert - * bundle on your system. + * Set to true to use the bundled CA cert or pass the full path to an SSL + * certificate bundle. This option should be modified when you encounter + * curl error code 60. Set to "system" to use the cacert bundle on your + * system. */ const SSL_CERT = 'ssl.certificate_authority'; diff --git a/inc/aws-sdk/Aws/Common/Enum/Region.php b/inc/aws-sdk/Aws/Common/Enum/Region.php index 459b85c..017d1d7 100755 --- a/inc/aws-sdk/Aws/Common/Enum/Region.php +++ b/inc/aws-sdk/Aws/Common/Enum/Region.php @@ -39,6 +39,9 @@ class Region extends Enum const EU_WEST_1 = 'eu-west-1'; const IRELAND = 'eu-west-1'; + + const EU_CENTRAL_1 = 'eu-central-1'; + const FRANKFURT = 'eu-central-1'; const AP_SOUTHEAST_1 = 'ap-southeast-1'; const SINGAPORE = 'ap-southeast-1'; @@ -52,6 +55,9 @@ class Region extends Enum const SA_EAST_1 = 'sa-east-1'; const SAO_PAULO = 'sa-east-1'; + const CN_NORTH_1 = 'cn-north-1'; + const BEIJING = 'cn-north-1'; + const US_GOV_WEST_1 = 'us-gov-west-1'; const GOV_CLOUD_US = 'us-gov-west-1'; } diff --git a/inc/aws-sdk/Aws/Common/Exception/Parser/JsonQueryExceptionParser.php b/inc/aws-sdk/Aws/Common/Exception/Parser/JsonQueryExceptionParser.php index 10af528..b11cc9b 100755 --- a/inc/aws-sdk/Aws/Common/Exception/Parser/JsonQueryExceptionParser.php +++ b/inc/aws-sdk/Aws/Common/Exception/Parser/JsonQueryExceptionParser.php @@ -29,8 +29,10 @@ class JsonQueryExceptionParser extends AbstractJsonExceptionParser protected function doParse(array $data, Response $response) { if ($json = $data['parsed']) { - $parts = explode('#', $json['__type']); - $data['code'] = isset($parts[1]) ? $parts[1] : $parts[0]; + if (isset($json['__type'])) { + $parts = explode('#', $json['__type']); + $data['code'] = isset($parts[1]) ? $parts[1] : $parts[0]; + } $data['message'] = isset($json['message']) ? $json['message'] : null; } diff --git a/inc/aws-sdk/Aws/Common/Exception/ServiceResponseException.php b/inc/aws-sdk/Aws/Common/Exception/ServiceResponseException.php index 76d831d..00869d0 100755 --- a/inc/aws-sdk/Aws/Common/Exception/ServiceResponseException.php +++ b/inc/aws-sdk/Aws/Common/Exception/ServiceResponseException.php @@ -180,4 +180,42 @@ class ServiceResponseException extends RuntimeException return $message; } + + /** + * Get the request ID of the error. This value is only present if a + * response was received, and is not present in the event of a networking + * error. + * + * Same as `getRequestId()` method, but matches the interface for SDKv3. + * + * @return string|null Returns null if no response was received + */ + public function getAwsRequestId() + { + return $this->requestId; + } + + /** + * Get the AWS error type. + * + * Same as `getExceptionType()` method, but matches the interface for SDKv3. + * + * @return string|null Returns null if no response was received + */ + public function getAwsErrorType() + { + return $this->exceptionType; + } + + /** + * Get the AWS error code. + * + * Same as `getExceptionCode()` method, but matches the interface for SDKv3. + * + * @return string|null Returns null if no response was received + */ + public function getAwsErrorCode() + { + return $this->exceptionCode; + } } diff --git a/inc/aws-sdk/Aws/Common/Facade/Facade.php b/inc/aws-sdk/Aws/Common/Facade/Facade.php index 3a13e4d..1caaa25 100755 --- a/inc/aws-sdk/Aws/Common/Facade/Facade.php +++ b/inc/aws-sdk/Aws/Common/Facade/Facade.php @@ -20,6 +20,8 @@ use Aws\Common\Aws; /** * Base facade class that handles the delegation logic + * + * @deprecated "Facades" are being removed in version 3.0 of the SDK. */ abstract class Facade implements FacadeInterface { @@ -41,7 +43,7 @@ abstract class Facade implements FacadeInterface if (isset($service['alias'], $service['class'])) { $facadeClass = __NAMESPACE__ . '\\' . $service['alias']; $facadeAlias = ltrim($targetNamespace . '\\' . $service['alias'], '\\'); - if (!class_exists($facadeAlias)) { + if (!class_exists($facadeAlias) && class_exists($facadeClass)) { // @codeCoverageIgnoreStart class_alias($facadeClass, $facadeAlias); // @codeCoverageIgnoreEnd diff --git a/inc/aws-sdk/Aws/Common/Facade/FacadeInterface.php b/inc/aws-sdk/Aws/Common/Facade/FacadeInterface.php index b1325bb..c00c32d 100755 --- a/inc/aws-sdk/Aws/Common/Facade/FacadeInterface.php +++ b/inc/aws-sdk/Aws/Common/Facade/FacadeInterface.php @@ -20,6 +20,8 @@ namespace Aws\Common\Facade; * Interface that defines a client facade. Facades are convenient static classes that allow you to run client methods * statically on a default instance from the service builder. The facades themselves are aliased into the global * namespace for ease of use. + * + * @deprecated "Facades" are being removed in version 3.0 of the SDK. */ interface FacadeInterface { diff --git a/inc/aws-sdk/Aws/Common/Facade/facade-classes.php b/inc/aws-sdk/Aws/Common/Facade/facade-classes.php index 5840374..b104190 100755 --- a/inc/aws-sdk/Aws/Common/Facade/facade-classes.php +++ b/inc/aws-sdk/Aws/Common/Facade/facade-classes.php @@ -168,6 +168,14 @@ class ImportExport extends Facade } } +class Kinesis extends Facade +{ + public static function getServiceBuilderKey() + { + return 'kinesis'; + } +} + class OpsWorks extends Facade { public static function getServiceBuilderKey() diff --git a/inc/aws-sdk/Aws/Common/Hash/HashUtils.php b/inc/aws-sdk/Aws/Common/Hash/HashUtils.php index dd82ff7..f66af6e 100755 --- a/inc/aws-sdk/Aws/Common/Hash/HashUtils.php +++ b/inc/aws-sdk/Aws/Common/Hash/HashUtils.php @@ -38,6 +38,10 @@ class HashUtils $useNative = function_exists('hex2bin'); } + if (!$useNative && strlen($hash) % 2 !== 0) { + $hash = '0' . $hash; + } + return $useNative ? hex2bin($hash) : pack("H*", $hash); } diff --git a/inc/aws-sdk/Aws/Common/Iterator/AwsResourceIterator.php b/inc/aws-sdk/Aws/Common/Iterator/AwsResourceIterator.php index a384617..cdd8119 100755 --- a/inc/aws-sdk/Aws/Common/Iterator/AwsResourceIterator.php +++ b/inc/aws-sdk/Aws/Common/Iterator/AwsResourceIterator.php @@ -32,7 +32,8 @@ class AwsResourceIterator extends ResourceIterator protected $lastResult = null; /** - * Provides access to the most recent result obtained by the iterator. + * Provides access to the most recent result obtained by the iterator. This makes it easier to extract any + * additional information from the result which you do not have access to from the values emitted by the iterator * * @return Model|null */ @@ -71,45 +72,37 @@ class AwsResourceIterator extends ResourceIterator return $resources; } - /** - * {@inheritdoc} - */ protected function prepareRequest() { // Get the limit parameter key to set - $param = $this->get('limit_param'); - if ($param && ($limit = $this->command->get($param))) { + $limitKey = $this->get('limit_key'); + if ($limitKey && ($limit = $this->command->get($limitKey))) { $pageSize = $this->calculatePageSize(); // If the limit of the command is different than the pageSize of the iterator, use the smaller value if ($limit && $pageSize) { - $this->command->set('limit', min($limit, $pageSize)); + $realLimit = min($limit, $pageSize); + $this->command->set($limitKey, $realLimit); } } } - /** - * {@inheritdoc} - */ protected function handleResults(Model $result) { $results = array(); // Get the result key that contains the results if ($resultKey = $this->get('result_key')) { - $results = $result->getPath($resultKey) ?: array(); + $results = $this->getValueFromResult($result, $resultKey) ?: array(); } return $results; } - /** - * {@inheritdoc} - */ protected function applyNextToken() { // Get the token parameter key to set - if ($tokenParam = $this->get('token_param')) { + if ($tokenParam = $this->get('input_token')) { // Set the next token. Works with multi-value tokens if (is_array($tokenParam)) { if (is_array($this->nextToken) && count($tokenParam) === count($this->nextToken)) { @@ -126,24 +119,51 @@ class AwsResourceIterator extends ResourceIterator } } - /** - * {@inheritdoc} - */ protected function determineNextToken(Model $result) { $this->nextToken = null; - // If the value of "more key" is true or there is no "more key" to check, then try to get the next token - $moreKey = $this->get('more_key'); - if ($moreKey === null || $result->getPath($moreKey)) { + // If the value of "more_results" is true or there is no "more_results" to check, then try to get the next token + $moreKey = $this->get('more_results'); + if ($moreKey === null || $this->getValueFromResult($result, $moreKey)) { // Get the token key to check - if ($tokenKey = $this->get('token_key')) { + if ($tokenKey = $this->get('output_token')) { // Get the next token's value. Works with multi-value tokens - $getToken = function ($key) use ($result) { - return $result->getPath((string) $key); - }; - $this->nextToken = is_array($tokenKey) ? array_map($getToken, $tokenKey) : $getToken($tokenKey); + if (is_array($tokenKey)) { + $this->nextToken = array(); + foreach ($tokenKey as $key) { + $this->nextToken[] = $this->getValueFromResult($result, $key); + } + } else { + $this->nextToken = $this->getValueFromResult($result, $tokenKey); + } + } + } + } + + /** + * Extracts the value from the result using Collection::getPath. Also adds some additional logic for keys that need + * to access n-1 indexes (e.g., ImportExport, Kinesis). The n-1 logic only works for the known cases. We will switch + * to a jmespath implementation in the future to cover all cases + * + * @param Model $result + * @param string $key + * + * @return mixed|null + */ + protected function getValueFromResult(Model $result, $key) + { + // Special handling for keys that need to access n-1 indexes + if (strpos($key, '#') !== false) { + $keyParts = explode('#', $key, 2); + $items = $result->getPath(trim($keyParts[0], '/')); + if ($items && is_array($items)) { + $index = count($items) - 1; + $key = strtr($key, array('#' => $index)); } } + + // Get the value + return $result->getPath($key); } } diff --git a/inc/aws-sdk/Aws/Common/Iterator/AwsResourceIteratorFactory.php b/inc/aws-sdk/Aws/Common/Iterator/AwsResourceIteratorFactory.php index 1d4ac27..ce668a2 100755 --- a/inc/aws-sdk/Aws/Common/Iterator/AwsResourceIteratorFactory.php +++ b/inc/aws-sdk/Aws/Common/Iterator/AwsResourceIteratorFactory.php @@ -16,24 +16,28 @@ class AwsResourceIteratorFactory implements ResourceIteratorFactoryInterface /** * @var array Default configuration values for iterators */ - protected static $defaultConfig = array( - 'limit_key' => null, - 'limit_param' => null, - 'more_key' => null, - 'token_key' => null, - 'token_param' => null, - 'operations' => array(), + protected static $defaultIteratorConfig = array( + 'input_token' => null, + 'output_token' => null, + 'limit_key' => null, + 'result_key' => null, + 'more_results' => null, ); /** - * @var Collection The configuration for the iterators + * @var array Legacy configuration options mapped to their new names */ - protected $config; + private static $legacyConfigOptions = array( + 'token_param' => 'input_token', + 'token_key' => 'output_token', + 'limit_param' => 'limit_key', + 'more_key' => 'more_results', + ); /** - * @var Collection Additional configurations for specific iterators + * @var array Iterator configuration for each iterable operation */ - protected $operations; + protected $config; /** * @var ResourceIteratorFactoryInterface Another factory that will be used first to instantiate the iterator @@ -43,59 +47,60 @@ class AwsResourceIteratorFactory implements ResourceIteratorFactoryInterface /** * @param array $config An array of configuration values for the factory * @param ResourceIteratorFactoryInterface $primaryIteratorFactory Another factory to use for chain of command - * - * @throws InvalidArgumentException */ public function __construct(array $config, ResourceIteratorFactoryInterface $primaryIteratorFactory = null) { $this->primaryIteratorFactory = $primaryIteratorFactory; - // Set up the config with default values - $this->config = Collection::fromConfig($config, self::$defaultConfig); - - // Pull out the operation-specific configurations - $this->operations = new Collection(); - $potentialOperations = $this->config->get('operations') ?: array(); - $this->config->remove('operations'); - foreach ($potentialOperations as $key => $value) { - if (is_int($key) && is_string($value)) { - $this->operations->set($value, array()); - } elseif (is_string($key) && is_array($value)) { - $this->operations->set($key, $value); - } else { - throw new InvalidArgumentException('The iterator factory configuration was invalid.'); - } + $this->config = array(); + foreach ($config as $name => $operation) { + $this->config[$name] = $operation + self::$defaultIteratorConfig; } } - /** - * {@inheritdoc} - */ public function build(CommandInterface $command, array $options = array()) { // Get the configuration data for the command $commandName = $command->getName(); - $iteratorConfig = $this->operations->get($commandName) ?: array(); - $options = array_replace($this->config->getAll(), $iteratorConfig, $options); + $commandSupported = isset($this->config[$commandName]); + $options = $this->translateLegacyConfigOptions($options); + $options += $commandSupported ? $this->config[$commandName] : array(); - // Instantiate the iterator using the primary factory (if there is one) + // Instantiate the iterator using the primary factory (if one was provided) if ($this->primaryIteratorFactory && $this->primaryIteratorFactory->canBuild($command)) { $iterator = $this->primaryIteratorFactory->build($command, $options); - } elseif (!$this->operations->hasKey($commandName)) { + } elseif (!$commandSupported) { throw new InvalidArgumentException("Iterator was not found for {$commandName}."); } else { - // Fallback to this factory for creating the iterator if the primary factory did not work + // Instantiate a generic AWS resource iterator $iterator = new AwsResourceIterator($command, $options); } return $iterator; } + public function canBuild(CommandInterface $command) + { + if ($this->primaryIteratorFactory) { + return $this->primaryIteratorFactory->canBuild($command); + } else { + return isset($this->config[$command->getName()]); + } + } + /** - * {@inheritdoc} + * @param array $config The config for a single operation + * + * @return array The modified config with legacy options translated */ - public function canBuild(CommandInterface $command) + private function translateLegacyConfigOptions($config) { - return ($this->primaryIteratorFactory && $this->primaryIteratorFactory->canBuild($command)) - || $this->operations->hasKey($command->getName()); + foreach (self::$legacyConfigOptions as $legacyOption => $newOption) { + if (isset($config[$legacyOption])) { + $config[$newOption] = $config[$legacyOption]; + unset($config[$legacyOption]); + } + } + + return $config; } } diff --git a/inc/aws-sdk/Aws/Common/Model/MultipartUpload/AbstractUploadBuilder.php b/inc/aws-sdk/Aws/Common/Model/MultipartUpload/AbstractUploadBuilder.php index a1ad678..8690d5c 100755 --- a/inc/aws-sdk/Aws/Common/Model/MultipartUpload/AbstractUploadBuilder.php +++ b/inc/aws-sdk/Aws/Common/Model/MultipartUpload/AbstractUploadBuilder.php @@ -49,7 +49,7 @@ abstract class AbstractUploadBuilder /** * Return a new instance of the UploadBuilder * - * @return self + * @return static */ public static function newInstance() { @@ -61,7 +61,7 @@ abstract class AbstractUploadBuilder * * @param AwsClientInterface $client Client to use * - * @return self + * @return $this */ public function setClient(AwsClientInterface $client) { @@ -78,7 +78,7 @@ abstract class AbstractUploadBuilder * multipart upload. When an ID is passed, the builder will create a * state object using the data from a ListParts API response. * - * @return self + * @return $this */ public function resumeFrom($state) { @@ -94,7 +94,7 @@ abstract class AbstractUploadBuilder * You can also stream from a resource returned from fopen or a Guzzle * {@see EntityBody} object. * - * @return self + * @return $this * @throws InvalidArgumentException when the source cannot be found or opened */ public function setSource($source) @@ -123,7 +123,7 @@ abstract class AbstractUploadBuilder * * @param array $headers Headers to add to the uploaded object * - * @return self + * @return $this */ public function setHeaders(array $headers) { diff --git a/inc/aws-sdk/Aws/Common/Resources/aws-config.php b/inc/aws-sdk/Aws/Common/Resources/aws-config.php index d5208c0..c8aac64 100755 --- a/inc/aws-sdk/Aws/Common/Resources/aws-config.php +++ b/inc/aws-sdk/Aws/Common/Resources/aws-config.php @@ -47,12 +47,31 @@ return array( ) ), + 'cloudhsm' => array( + 'alias' => 'CloudHsm', + 'extends' => 'default_settings', + 'class' => 'Aws\CloudHsm\CloudHsmClient' + ), + 'cloudsearch' => array( 'alias' => 'CloudSearch', 'extends' => 'default_settings', 'class' => 'Aws\CloudSearch\CloudSearchClient' ), + 'cloudsearch_20110201' => array( + 'extends' => 'cloudsearch', + 'params' => array( + 'version' => '2011-02-01' + ) + ), + + 'cloudsearchdomain' => array( + 'alias' => 'CloudSearchDomain', + 'extends' => 'default_settings', + 'class' => 'Aws\CloudSearchDomain\CloudSearchDomainClient' + ), + 'cloudtrail' => array( 'alias' => 'CloudTrail', 'extends' => 'default_settings', @@ -65,6 +84,40 @@ return array( 'class' => 'Aws\CloudWatch\CloudWatchClient' ), + 'cloudwatchlogs' => array( + 'alias' => 'CloudWatchLogs', + 'extends' => 'default_settings', + 'class' => 'Aws\CloudWatchLogs\CloudWatchLogsClient' + ), + + 'cognito-identity' => array( + 'alias' => 'CognitoIdentity', + 'extends' => 'default_settings', + 'class' => 'Aws\CognitoIdentity\CognitoIdentityClient' + ), + + 'cognitoidentity' => array('extends' => 'cognito-identity'), + + 'cognito-sync' => array( + 'alias' => 'CognitoSync', + 'extends' => 'default_settings', + 'class' => 'Aws\CognitoSync\CognitoSyncClient' + ), + + 'cognitosync' => array('extends' => 'cognito-sync'), + + 'codedeploy' => array( + 'alias' => 'CodeDeploy', + 'extends' => 'default_settings', + 'class' => 'Aws\CodeDeploy\CodeDeployClient' + ), + + 'config' => array( + 'alias' => 'ConfigService', + 'extends' => 'default_settings', + 'class' => 'Aws\ConfigService\ConfigServiceClient' + ), + 'datapipeline' => array( 'alias' => 'DataPipeline', 'extends' => 'default_settings', @@ -96,6 +149,12 @@ return array( 'class' => 'Aws\Ec2\Ec2Client' ), + 'ecs' => array( + 'alias' => 'Ecs', + 'extends' => 'default_settings', + 'class' => 'Aws\Ecs\EcsClient' + ), + 'elasticache' => array( 'alias' => 'ElastiCache', 'extends' => 'default_settings', @@ -132,6 +191,24 @@ return array( 'class' => 'Aws\Glacier\GlacierClient' ), + 'kinesis' => array( + 'alias' => 'Kinesis', + 'extends' => 'default_settings', + 'class' => 'Aws\Kinesis\KinesisClient' + ), + + 'kms' => array( + 'alias' => 'Kms', + 'extends' => 'default_settings', + 'class' => 'Aws\Kms\KmsClient' + ), + + 'lambda' => array( + 'alias' => 'Lambda', + 'extends' => 'default_settings', + 'class' => 'Aws\Lambda\LambdaClient' + ), + 'iam' => array( 'alias' => 'Iam', 'extends' => 'default_settings', @@ -144,6 +221,12 @@ return array( 'class' => 'Aws\ImportExport\ImportExportClient' ), + 'machinelearning' => array( + 'alias' => 'MachineLearning', + 'extends' => 'default_settings', + 'class' => 'Aws\MachineLearning\MachineLearningClient' + ), + 'opsworks' => array( 'alias' => 'OpsWorks', 'extends' => 'default_settings', @@ -168,6 +251,12 @@ return array( 'class' => 'Aws\Route53\Route53Client' ), + 'route53domains' => array( + 'alias' => 'Route53Domains', + 'extends' => 'default_settings', + 'class' => 'Aws\Route53Domains\Route53DomainsClient' + ), + 's3' => array( 'alias' => 'S3', 'extends' => 'default_settings', @@ -198,6 +287,12 @@ return array( 'class' => 'Aws\Sqs\SqsClient' ), + 'ssm' => array( + 'alias' => 'Ssm', + 'extends' => 'default_settings', + 'class' => 'Aws\Ssm\SsmClient' + ), + 'storagegateway' => array( 'alias' => 'StorageGateway', 'extends' => 'default_settings', @@ -221,5 +316,11 @@ return array( 'extends' => 'default_settings', 'class' => 'Aws\Swf\SwfClient' ), + + 'workspaces' => array( + 'alias' => 'WorkSpaces', + 'extends' => 'default_settings', + 'class' => 'Aws\WorkSpaces\WorkSpacesClient' + ), ) ); diff --git a/inc/aws-sdk/Aws/Common/Resources/public-endpoints.php b/inc/aws-sdk/Aws/Common/Resources/public-endpoints.php new file mode 100644 index 0000000..d939f1f --- /dev/null +++ b/inc/aws-sdk/Aws/Common/Resources/public-endpoints.php @@ -0,0 +1,79 @@ + 2, + 'endpoints' => array( + '*/*' => array( + 'endpoint' => '{service}.{region}.amazonaws.com' + ), + 'cn-north-1/*' => array( + 'endpoint' => '{service}.{region}.amazonaws.com.cn', + 'signatureVersion' => 'v4' + ), + 'us-gov-west-1/iam' => array( + 'endpoint' => 'iam.us-gov.amazonaws.com' + ), + 'us-gov-west-1/sts' => array( + 'endpoint' => 'sts.us-gov-west-1.amazonaws.com' + ), + 'us-gov-west-1/s3' => array( + 'endpoint' => 's3-{region}.amazonaws.com' + ), + '*/cloudfront' => array( + 'endpoint' => 'cloudfront.amazonaws.com', + 'credentialScope' => array( + 'region' => 'us-east-1' + ) + ), + '*/iam' => array( + 'endpoint' => 'iam.amazonaws.com', + 'credentialScope' => array( + 'region' => 'us-east-1' + ) + ), + '*/importexport' => array( + 'endpoint' => 'importexport.amazonaws.com', + 'credentialScope' => array( + 'region' => 'us-east-1' + ) + ), + '*/route53' => array( + 'endpoint' => 'route53.amazonaws.com', + 'credentialScope' => array( + 'region' => 'us-east-1' + ) + ), + '*/sts' => array( + 'endpoint' => 'sts.amazonaws.com', + 'credentialScope' => array( + 'region' => 'us-east-1' + ) + ), + 'us-east-1/sdb' => array( + 'endpoint' => 'sdb.amazonaws.com' + ), + 'us-east-1/s3' => array( + 'endpoint' => 's3.amazonaws.com' + ), + 'us-west-1/s3' => array( + 'endpoint' => 's3-{region}.amazonaws.com' + ), + 'us-west-2/s3' => array( + 'endpoint' => 's3-{region}.amazonaws.com' + ), + 'eu-west-1/s3' => array( + 'endpoint' => 's3-{region}.amazonaws.com' + ), + 'ap-southeast-1/s3' => array( + 'endpoint' => 's3-{region}.amazonaws.com' + ), + 'ap-southeast-2/s3' => array( + 'endpoint' => 's3-{region}.amazonaws.com' + ), + 'ap-northeast-1/s3' => array( + 'endpoint' => 's3-{region}.amazonaws.com' + ), + 'sa-east-1/s3' => array( + 'endpoint' => 's3-{region}.amazonaws.com' + ) + ) +); diff --git a/inc/aws-sdk/Aws/Common/RulesEndpointProvider.php b/inc/aws-sdk/Aws/Common/RulesEndpointProvider.php new file mode 100644 index 0000000..ec57cb8 --- /dev/null +++ b/inc/aws-sdk/Aws/Common/RulesEndpointProvider.php @@ -0,0 +1,67 @@ +patterns = $patterns; + } + + /** + * Creates and returns the default RulesEndpointProvider based on the + * public rule sets. + * + * @return self + */ + public static function fromDefaults() + { + return new self(require __DIR__ . '/Resources/public-endpoints.php'); + } + + public function __invoke(array $args = array()) + { + if (!isset($args['service'])) { + throw new \InvalidArgumentException('Requires a "service" value'); + } + + if (!isset($args['region'])) { + throw new \InvalidArgumentException('Requires a "region" value'); + } + + foreach ($this->getKeys($args['region'], $args['service']) as $key) { + if (isset($this->patterns['endpoints'][$key])) { + return $this->expand($this->patterns['endpoints'][$key], $args); + } + } + + throw new \RuntimeException('Could not resolve endpoint'); + } + + private function expand(array $config, array $args) + { + $scheme = isset($args['scheme']) ? $args['scheme'] : 'https'; + $config['endpoint'] = $scheme . '://' . str_replace( + array('{service}', '{region}'), + array($args['service'], $args['region']), + $config['endpoint'] + ); + + return $config; + } + + private function getKeys($region, $service) + { + return array("$region/$service", "$region/*", "*/$service", "*/*"); + } +} diff --git a/inc/aws-sdk/Aws/Common/Signature/AbstractSignature.php b/inc/aws-sdk/Aws/Common/Signature/AbstractSignature.php index 00d66f8..2d25d87 100755 --- a/inc/aws-sdk/Aws/Common/Signature/AbstractSignature.php +++ b/inc/aws-sdk/Aws/Common/Signature/AbstractSignature.php @@ -16,75 +16,29 @@ namespace Aws\Common\Signature; +use Aws\Common\Credentials\CredentialsInterface; use Guzzle\Http\Message\RequestInterface; -/** - * Abstract signature class that can be used when implementing new concrete - * AWS signature protocol strategies - */ abstract class AbstractSignature implements SignatureInterface { /** - * @var int Timestamp - */ - private $timestamp; - - /** - * Get the canonicalized query string for a request - * - * @param RequestInterface $request - * @return string - */ - protected function getCanonicalizedQueryString(RequestInterface $request) - { - $queryParams = $request->getQuery()->getAll(); - unset($queryParams['X-Amz-Signature']); - if (empty($queryParams)) { - return ''; - } - - $qs = ''; - ksort($queryParams); - foreach ($queryParams as $key => $values) { - if (is_array($values)) { - sort($values); - } elseif (!$values) { - $values = array(''); - } - - foreach ((array) $values as $value) { - $qs .= rawurlencode($key) . '=' . rawurlencode($value) . '&'; - } - } - - return substr($qs, 0, -1); - } - - /** - * Provides the timestamp used for the class - * - * @param bool $refresh Set to TRUE to refresh the cached timestamp + * Provides the timestamp used for the class (used for mocking PHP's time() function) * * @return int */ - protected function getTimestamp($refresh = false) + protected function getTimestamp() { - if (!$this->timestamp || $refresh) { - $this->timestamp = time(); - } - - return $this->timestamp; + return time(); } /** - * Get a date for one of the parts of the requests - * - * @param string $format Date format - * - * @return string + * @codeCoverageIgnore */ - protected function getDateTime($format) - { - return gmdate($format, $this->getTimestamp()); + public function createPresignedUrl( + RequestInterface $request, + CredentialsInterface $credentials, + $expires + ) { + throw new \BadMethodCallException(__METHOD__ . ' not implemented'); } } diff --git a/inc/aws-sdk/Aws/Common/Signature/SignatureInterface.php b/inc/aws-sdk/Aws/Common/Signature/SignatureInterface.php index 35117ed..e3536ba 100755 --- a/inc/aws-sdk/Aws/Common/Signature/SignatureInterface.php +++ b/inc/aws-sdk/Aws/Common/Signature/SignatureInterface.php @@ -34,4 +34,19 @@ interface SignatureInterface * @param CredentialsInterface $credentials Signing credentials */ public function signRequest(RequestInterface $request, CredentialsInterface $credentials); + + /** + * Create a pre-signed URL + * + * @param RequestInterface $request Request to sign + * @param CredentialsInterface $credentials Credentials used to sign + * @param int|string|\DateTime $expires The time at which the URL should expire. This can be a Unix timestamp, a + * PHP DateTime object, or a string that can be evaluated by strtotime + * @return string + */ + public function createPresignedUrl( + RequestInterface $request, + CredentialsInterface $credentials, + $expires + ); } diff --git a/inc/aws-sdk/Aws/Common/Signature/SignatureListener.php b/inc/aws-sdk/Aws/Common/Signature/SignatureListener.php index d24d252..e53f367 100755 --- a/inc/aws-sdk/Aws/Common/Signature/SignatureListener.php +++ b/inc/aws-sdk/Aws/Common/Signature/SignatureListener.php @@ -17,6 +17,7 @@ namespace Aws\Common\Signature; use Aws\Common\Credentials\CredentialsInterface; +use Aws\Common\Credentials\NullCredentials; use Guzzle\Common\Event; use Symfony\Component\EventDispatcher\EventSubscriberInterface; @@ -75,6 +76,8 @@ class SignatureListener implements EventSubscriberInterface */ public function onRequestBeforeSend(Event $event) { - $this->signature->signRequest($event['request'], $this->credentials); + if(!$this->credentials instanceof NullCredentials) { + $this->signature->signRequest($event['request'], $this->credentials); + } } } diff --git a/inc/aws-sdk/Aws/Common/Signature/SignatureV2.php b/inc/aws-sdk/Aws/Common/Signature/SignatureV2.php index 8b2f3a4..c900287 100755 --- a/inc/aws-sdk/Aws/Common/Signature/SignatureV2.php +++ b/inc/aws-sdk/Aws/Common/Signature/SignatureV2.php @@ -25,16 +25,13 @@ use Guzzle\Http\Message\RequestInterface; */ class SignatureV2 extends AbstractSignature { - /** - * {@inheritDoc} - */ public function signRequest(RequestInterface $request, CredentialsInterface $credentials) { // refresh the cached timestamp - $this->getTimestamp(true); + $timestamp = $this->getTimestamp(true); // set values we need in CanonicalizedParameterString - $this->addParameter($request, 'Timestamp', $this->getDateTime('c')); + $this->addParameter($request, 'Timestamp', gmdate('c', $timestamp)); $this->addParameter($request, 'SignatureVersion', '2'); $this->addParameter($request, 'SignatureMethod', 'HmacSHA256'); $this->addParameter($request, 'AWSAccessKeyId', $credentials->getAccessKeyId()); @@ -90,7 +87,7 @@ class SignatureV2 extends AbstractSignature * * @return string */ - public function getCanonicalizedParameterString(RequestInterface $request) + private function getCanonicalizedParameterString(RequestInterface $request) { if ($request->getMethod() == 'POST') { $params = $request->getPostFields()->toArray(); diff --git a/inc/aws-sdk/Aws/Common/Signature/SignatureV3Https.php b/inc/aws-sdk/Aws/Common/Signature/SignatureV3Https.php index 228471c..be0514e 100755 --- a/inc/aws-sdk/Aws/Common/Signature/SignatureV3Https.php +++ b/inc/aws-sdk/Aws/Common/Signature/SignatureV3Https.php @@ -26,14 +26,11 @@ use Guzzle\Http\Message\RequestInterface; */ class SignatureV3Https extends AbstractSignature { - /** - * {@inheritdoc} - */ public function signRequest(RequestInterface $request, CredentialsInterface $credentials) { // Add a date header if one is not set if (!$request->hasHeader('date') && !$request->hasHeader('x-amz-date')) { - $request->setHeader('Date', $this->getDateTime(DateFormat::RFC1123)); + $request->setHeader('Date', gmdate(DateFormat::RFC1123, $this->getTimestamp())); } // Add the security token if one is present @@ -42,7 +39,7 @@ class SignatureV3Https extends AbstractSignature } // Determine the string to sign - $stringToSign = $request->getHeader('Date', true) ?: $request->getHeader('x-amz-date', true); + $stringToSign = (string) ($request->getHeader('Date') ?: $request->getHeader('x-amz-date')); $request->getParams()->set('aws.string_to_sign', $stringToSign); // Calculate the signature diff --git a/inc/aws-sdk/Aws/Common/Signature/SignatureV4.php b/inc/aws-sdk/Aws/Common/Signature/SignatureV4.php index 86b609d..2137760 100755 --- a/inc/aws-sdk/Aws/Common/Signature/SignatureV4.php +++ b/inc/aws-sdk/Aws/Common/Signature/SignatureV4.php @@ -20,8 +20,11 @@ use Aws\Common\Credentials\CredentialsInterface; use Aws\Common\Enum\DateFormat; use Aws\Common\HostNameUtils; use Guzzle\Http\Message\EntityEnclosingRequestInterface; +use Guzzle\Http\Message\RequestFactory; use Guzzle\Http\Message\RequestInterface; +use Guzzle\Http\QueryString; use Guzzle\Http\Url; +use Guzzle\Stream\Stream; /** * Signature Version 4 @@ -29,35 +32,33 @@ use Guzzle\Http\Url; */ class SignatureV4 extends AbstractSignature implements EndpointSignatureInterface { - /** - * @var string Cache of the default empty entity-body payload - */ + /** @var string Cache of the default empty entity-body payload */ const DEFAULT_PAYLOAD = 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855'; - /** - * @var string Explicitly set service name - */ + /** @var string Explicitly set service name */ protected $serviceName; - /** - * @var string Explicitly set region name - */ + /** @var string Explicitly set region name */ protected $regionName; - /** - * @var int Maximum number of hashes to cache - */ + /** @var int Maximum number of hashes to cache */ protected $maxCacheSize = 50; - /** - * @var array Cache of previously signed values - */ + /** @var array Cache of previously signed values */ protected $hashCache = array(); + /** @var int Size of the hash cache */ + protected $cacheSize = 0; + /** - * @var int Size of the hash cache + * @param string $serviceName Bind the signing to a particular service name + * @param string $regionName Bind the signing to a particular region name */ - protected $cacheSize = 0; + public function __construct($serviceName = null, $regionName = null) + { + $this->serviceName = $serviceName; + $this->regionName = $regionName; + } /** * Set the service name instead of inferring it from a request URL @@ -101,26 +102,20 @@ class SignatureV4 extends AbstractSignature implements EndpointSignatureInterfac return $this; } - /** - * {@inheritdoc} - */ public function signRequest(RequestInterface $request, CredentialsInterface $credentials) { - // Refresh the cached timestamp - $this->getTimestamp(true); - - $longDate = $this->getDateTime(DateFormat::ISO8601); - $shortDate = $this->getDateTime(DateFormat::SHORT); + $timestamp = $this->getTimestamp(); + $longDate = gmdate(DateFormat::ISO8601, $timestamp); + $shortDate = substr($longDate, 0, 8); - // Remove any previously set Authorization headers so that - // exponential backoff works correctly + // Remove any previously set Authorization headers so that retries work $request->removeHeader('Authorization'); // Requires a x-amz-date header or Date if ($request->hasHeader('x-amz-date') || !$request->hasHeader('Date')) { $request->setHeader('x-amz-date', $longDate); } else { - $request->setHeader('Date', $this->getDateTime(DateFormat::RFC1123)); + $request->setHeader('Date', gmdate(DateFormat::RFC1123, $timestamp)); } // Add the security token if one is present @@ -129,22 +124,22 @@ class SignatureV4 extends AbstractSignature implements EndpointSignatureInterfac } // Parse the service and region or use one that is explicitly set - $url = null; - if (!$this->regionName || !$this->serviceName) { + $region = $this->regionName; + $service = $this->serviceName; + if (!$region || !$service) { $url = Url::factory($request->getUrl()); - } - if (!$region = $this->regionName) { - $region = HostNameUtils::parseRegionName($url); - } - if (!$service = $this->serviceName) { - $service = HostNameUtils::parseServiceName($url); + $region = $region ?: HostNameUtils::parseRegionName($url); + $service = $service ?: HostNameUtils::parseServiceName($url); } - $credentialScope = "{$shortDate}/{$region}/{$service}/aws4_request"; - - $signingContext = $this->createCanonicalRequest($request); - $signingContext['string_to_sign'] = "AWS4-HMAC-SHA256\n{$longDate}\n{$credentialScope}\n" - . hash('sha256', $signingContext['canonical_request']); + $credentialScope = $this->createScope($shortDate, $region, $service); + $payload = $this->getPayload($request); + $signingContext = $this->createSigningContext($request, $payload); + $signingContext['string_to_sign'] = $this->createStringToSign( + $longDate, + $credentialScope, + $signingContext['canonical_request'] + ); // Calculate the signing key using a series of derived keys $signingKey = $this->getSigningKey($shortDate, $region, $service, $credentials->getSecretKey()); @@ -158,65 +153,199 @@ class SignatureV4 extends AbstractSignature implements EndpointSignatureInterfac $request->getParams()->set('aws.signature', $signingContext); } + public function createPresignedUrl( + RequestInterface $request, + CredentialsInterface $credentials, + $expires + ) { + $request = $this->createPresignedRequest($request, $credentials); + $query = $request->getQuery(); + $httpDate = gmdate(DateFormat::ISO8601, $this->getTimestamp()); + $shortDate = substr($httpDate, 0, 8); + $scope = $this->createScope( + $shortDate, + $this->regionName, + $this->serviceName + ); + $this->addQueryValues($scope, $request, $credentials, $expires); + $payload = $this->getPresignedPayload($request); + $context = $this->createSigningContext($request, $payload); + $stringToSign = $this->createStringToSign( + $httpDate, + $scope, + $context['canonical_request'] + ); + $key = $this->getSigningKey( + $shortDate, + $this->regionName, + $this->serviceName, + $credentials->getSecretKey() + ); + $query['X-Amz-Signature'] = hash_hmac('sha256', $stringToSign, $key); + + return $request->getUrl(); + } + /** - * Create the canonical representation of a request + * Converts a POST request to a GET request by moving POST fields into the + * query string. * - * @param RequestInterface $request Request to canonicalize + * Useful for pre-signing query protocol requests. * - * @return array Returns an array of context information + * @param EntityEnclosingRequestInterface $request Request to clone + * + * @return RequestInterface + * @throws \InvalidArgumentException if the method is not POST */ - private function createCanonicalRequest(RequestInterface $request) + public static function convertPostToGet(EntityEnclosingRequestInterface $request) { - // Normalize the path as required by SigV4 and ensure it's absolute - $method = $request->getMethod(); - $canon = $method . "\n" - . '/' . ltrim($request->getUrl(true)->normalizePath()->getPath(), '/') . "\n" - . $this->getCanonicalizedQueryString($request) . "\n"; - - // Create the canonical headers - $headers = array(); - foreach ($request->getHeaders()->getAll() as $key => $values) { - if ($key != 'User-Agent') { - $key = strtolower($key); - if (!isset($headers[$key])) { - $headers[$key] = array(); - } - foreach ($values as $value) { - $headers[$key][] = preg_replace('/\s+/', ' ', trim($value)); - } - } + if ($request->getMethod() !== 'POST') { + throw new \InvalidArgumentException('Expected a POST request but ' + . 'received a ' . $request->getMethod() . ' request.'); } - // The headers must be sorted - ksort($headers); + $cloned = RequestFactory::getInstance() + ->cloneRequestWithMethod($request, 'GET'); - // Continue to build the canonical request by adding headers - foreach ($headers as $key => $values) { - // Combine multi-value headers into a comma separated list - $canon .= $key . ':' . implode(',', $values) . "\n"; + // Move POST fields to the query if they are present + foreach ($request->getPostFields() as $name => $value) { + $cloned->getQuery()->set($name, $value); } - // Create the signed headers - $signedHeaders = implode(';', array_keys($headers)); - $canon .= "\n{$signedHeaders}\n"; + return $cloned; + } - // Create the payload if this request has an entity body + /** + * Get the payload part of a signature from a request. + * + * @param RequestInterface $request + * + * @return string + */ + protected function getPayload(RequestInterface $request) + { + // Calculate the request signature payload if ($request->hasHeader('x-amz-content-sha256')) { // Handle streaming operations (e.g. Glacier.UploadArchive) - $canon .= $request->getHeader('x-amz-content-sha256'); - } elseif ($request instanceof EntityEnclosingRequestInterface) { - $canon .= hash( - 'sha256', - $method == 'POST' && count($request->getPostFields()) - ? (string) $request->getPostFields() : (string) $request->getBody() - ); + return (string) $request->getHeader('x-amz-content-sha256'); + } + + if ($request instanceof EntityEnclosingRequestInterface) { + if ($request->getMethod() == 'POST' && count($request->getPostFields())) { + return hash('sha256', (string) $request->getPostFields()); + } elseif ($body = $request->getBody()) { + return Stream::getHash($request->getBody(), 'sha256'); + } + } + + return self::DEFAULT_PAYLOAD; + } + + /** + * Get the payload of a request for use with pre-signed URLs. + * + * @param RequestInterface $request + * + * @return string + */ + protected function getPresignedPayload(RequestInterface $request) + { + return $this->getPayload($request); + } + + protected function createCanonicalizedPath(RequestInterface $request) + { + $doubleEncoded = rawurlencode(ltrim($request->getPath(), '/')); + + return '/' . str_replace('%2F', '/', $doubleEncoded); + } + + private function createStringToSign($longDate, $credentialScope, $creq) + { + return "AWS4-HMAC-SHA256\n{$longDate}\n{$credentialScope}\n" + . hash('sha256', $creq); + } + + private function createPresignedRequest( + RequestInterface $request, + CredentialsInterface $credentials + ) { + // POST requests can be sent as GET requests instead by moving the + // POST fields into the query string. + if ($request instanceof EntityEnclosingRequestInterface + && $request->getMethod() === 'POST' + && strpos($request->getHeader('Content-Type'), 'application/x-www-form-urlencoded') === 0 + ) { + $sr = RequestFactory::getInstance() + ->cloneRequestWithMethod($request, 'GET'); + // Move POST fields to the query if they are present + foreach ($request->getPostFields() as $name => $value) { + $sr->getQuery()->set($name, $value); + } } else { - $canon .= self::DEFAULT_PAYLOAD; + $sr = clone $request; + } + + // Make sure to handle temporary credentials + if ($token = $credentials->getSecurityToken()) { + $sr->setHeader('X-Amz-Security-Token', $token); + $sr->getQuery()->set('X-Amz-Security-Token', $token); + } + + $this->moveHeadersToQuery($sr); + + return $sr; + } + + /** + * Create the canonical representation of a request + * + * @param RequestInterface $request Request to canonicalize + * @param string $payload Request payload (typically the value + * of the x-amz-content-sha256 header. + * + * @return array Returns an array of context information including: + * - canonical_request + * - signed_headers + */ + private function createSigningContext(RequestInterface $request, $payload) + { + $signable = array( + 'host' => true, + 'date' => true, + 'content-md5' => true + ); + + // Normalize the path as required by SigV4 and ensure it's absolute + $canon = $request->getMethod() . "\n" + . $this->createCanonicalizedPath($request) . "\n" + . $this->getCanonicalizedQueryString($request) . "\n"; + + $canonHeaders = array(); + + foreach ($request->getHeaders()->getAll() as $key => $values) { + $key = strtolower($key); + if (isset($signable[$key]) || substr($key, 0, 6) === 'x-amz-') { + $values = $values->toArray(); + if (count($values) == 1) { + $values = $values[0]; + } else { + sort($values); + $values = implode(',', $values); + } + $canonHeaders[$key] = $key . ':' . preg_replace('/\s+/', ' ', $values); + } } + ksort($canonHeaders); + $signedHeadersString = implode(';', array_keys($canonHeaders)); + $canon .= implode("\n", $canonHeaders) . "\n\n" + . $signedHeadersString . "\n" + . $payload; + return array( 'canonical_request' => $canon, - 'signed_headers' => $signedHeaders + 'signed_headers' => $signedHeadersString ); } @@ -250,4 +379,99 @@ class SignatureV4 extends AbstractSignature implements EndpointSignatureInterfac return $this->hashCache[$cacheKey]; } + + /** + * Get the canonicalized query string for a request + * + * @param RequestInterface $request + * @return string + */ + private function getCanonicalizedQueryString(RequestInterface $request) + { + $queryParams = $request->getQuery()->getAll(); + unset($queryParams['X-Amz-Signature']); + if (empty($queryParams)) { + return ''; + } + + $qs = ''; + ksort($queryParams); + foreach ($queryParams as $key => $values) { + if (is_array($values)) { + sort($values); + } elseif ($values === 0) { + $values = array('0'); + } elseif (!$values) { + $values = array(''); + } + + foreach ((array) $values as $value) { + if ($value === QueryString::BLANK) { + $value = ''; + } + $qs .= rawurlencode($key) . '=' . rawurlencode($value) . '&'; + } + } + + return substr($qs, 0, -1); + } + + private function convertExpires($expires) + { + if ($expires instanceof \DateTime) { + $expires = $expires->getTimestamp(); + } elseif (!is_numeric($expires)) { + $expires = strtotime($expires); + } + + $duration = $expires - time(); + + // Ensure that the duration of the signature is not longer than a week + if ($duration > 604800) { + throw new \InvalidArgumentException('The expiration date of a ' + . 'signature version 4 presigned URL must be less than one ' + . 'week'); + } + + return $duration; + } + + private function createScope($shortDate, $region, $service) + { + return $shortDate + . '/' . $region + . '/' . $service + . '/aws4_request'; + } + + private function addQueryValues( + $scope, + RequestInterface $request, + CredentialsInterface $credentials, + $expires + ) { + $credential = $credentials->getAccessKeyId() . '/' . $scope; + + // Set query params required for pre-signed URLs + $request->getQuery() + ->set('X-Amz-Algorithm', 'AWS4-HMAC-SHA256') + ->set('X-Amz-Credential', $credential) + ->set('X-Amz-Date', gmdate('Ymd\THis\Z', $this->getTimestamp())) + ->set('X-Amz-SignedHeaders', 'Host') + ->set('X-Amz-Expires', $this->convertExpires($expires)); + } + + private function moveHeadersToQuery(RequestInterface $request) + { + $query = $request->getQuery(); + + foreach ($request->getHeaders() as $name => $header) { + if (substr($name, 0, 5) == 'x-amz') { + $query[$header->getName()] = (string) $header; + } + if ($name !== 'host') { + $request->removeHeader($name); + } + } + } } diff --git a/inc/aws-sdk/Aws/ConfigService/ConfigServiceClient.php b/inc/aws-sdk/Aws/ConfigService/ConfigServiceClient.php new file mode 100644 index 0000000..84dce3e --- /dev/null +++ b/inc/aws-sdk/Aws/ConfigService/ConfigServiceClient.php @@ -0,0 +1,71 @@ +setConfig($config) + ->setConfigDefaults(array( + Options::VERSION => self::LATEST_API_VERSION, + Options::SERVICE_DESCRIPTION => __DIR__ . '/Resources/configservice-%s.php' + )) + ->setExceptionParser(new JsonQueryExceptionParser()) + ->build(); + } +} diff --git a/inc/aws-sdk/Aws/ConfigService/Exception/ConfigServiceException.php b/inc/aws-sdk/Aws/ConfigService/Exception/ConfigServiceException.php new file mode 100644 index 0000000..b91ae2b --- /dev/null +++ b/inc/aws-sdk/Aws/ConfigService/Exception/ConfigServiceException.php @@ -0,0 +1,10 @@ + '2014-11-12', + 'endpointPrefix' => 'config', + 'serviceFullName' => 'AWS Config', + 'serviceAbbreviation' => 'Config Service', + 'serviceType' => 'json', + 'jsonVersion' => '1.1', + 'targetPrefix' => 'StarlingDoveService.', + 'signatureVersion' => 'v4', + 'namespace' => 'ConfigService', + 'operations' => array( + 'DeleteDeliveryChannel' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'EmptyOutput', + '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' => 'StarlingDoveService.DeleteDeliveryChannel', + ), + 'DeliveryChannelName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 256, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'You have specified a delivery channel that does not exist.', + 'class' => 'NoSuchDeliveryChannelException', + ), + array( + 'reason' => 'You cannot delete the delivery channel you specified because the configuration recorder is running.', + 'class' => 'LastDeliveryChannelDeleteFailedException', + ), + ), + ), + 'DeliverConfigSnapshot' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'DeliverConfigSnapshotResponse', + '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' => 'StarlingDoveService.DeliverConfigSnapshot', + ), + 'deliveryChannelName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 256, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'You have specified a delivery channel that does not exist.', + 'class' => 'NoSuchDeliveryChannelException', + ), + array( + 'reason' => 'There are no configuration recorders available to provide the role needed to describe your resources.', + 'class' => 'NoAvailableConfigurationRecorderException', + ), + array( + 'reason' => 'There is no configuration recorder running.', + 'class' => 'NoRunningConfigurationRecorderException', + ), + ), + ), + 'DescribeConfigurationRecorderStatus' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'DescribeConfigurationRecorderStatusResponse', + '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' => 'StarlingDoveService.DescribeConfigurationRecorderStatus', + ), + 'ConfigurationRecorderNames' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'RecorderName', + 'type' => 'string', + 'minLength' => 1, + 'maxLength' => 256, + ), + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'You have specified a configuration recorder that does not exist.', + 'class' => 'NoSuchConfigurationRecorderException', + ), + ), + ), + 'DescribeConfigurationRecorders' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'DescribeConfigurationRecordersResponse', + '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' => 'StarlingDoveService.DescribeConfigurationRecorders', + ), + 'ConfigurationRecorderNames' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'RecorderName', + 'type' => 'string', + 'minLength' => 1, + 'maxLength' => 256, + ), + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'You have specified a configuration recorder that does not exist.', + 'class' => 'NoSuchConfigurationRecorderException', + ), + ), + ), + 'DescribeDeliveryChannelStatus' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'DescribeDeliveryChannelStatusResponse', + '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' => 'StarlingDoveService.DescribeDeliveryChannelStatus', + ), + 'DeliveryChannelNames' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'ChannelName', + 'type' => 'string', + 'minLength' => 1, + 'maxLength' => 256, + ), + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'You have specified a delivery channel that does not exist.', + 'class' => 'NoSuchDeliveryChannelException', + ), + ), + ), + 'DescribeDeliveryChannels' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'DescribeDeliveryChannelsResponse', + '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' => 'StarlingDoveService.DescribeDeliveryChannels', + ), + 'DeliveryChannelNames' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'ChannelName', + 'type' => 'string', + 'minLength' => 1, + 'maxLength' => 256, + ), + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'You have specified a delivery channel that does not exist.', + 'class' => 'NoSuchDeliveryChannelException', + ), + ), + ), + 'GetResourceConfigHistory' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'GetResourceConfigHistoryResponse', + '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' => 'StarlingDoveService.GetResourceConfigHistory', + ), + 'resourceType' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + ), + 'resourceId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + ), + 'laterTime' => array( + 'type' => array( + 'object', + 'string', + 'integer', + ), + 'format' => 'date-time', + 'location' => 'json', + ), + 'earlierTime' => array( + 'type' => array( + 'object', + 'string', + 'integer', + ), + 'format' => 'date-time', + 'location' => 'json', + ), + 'chronologicalOrder' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'limit' => array( + 'type' => 'numeric', + 'location' => 'json', + 'maximum' => 100, + ), + 'nextToken' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The requested action is not valid.', + 'class' => 'ValidationException', + ), + array( + 'reason' => 'The specified time range is not valid. The earlier time is not chronologically before the later time.', + 'class' => 'InvalidTimeRangeException', + ), + array( + 'reason' => 'You have reached the limit on the pagination.', + 'class' => 'InvalidLimitException', + ), + array( + 'reason' => 'The specified nextToken for pagination is not valid.', + 'class' => 'InvalidNextTokenException', + ), + array( + 'reason' => 'There are no configuration recorders available to provide the role needed to describe your resources.', + 'class' => 'NoAvailableConfigurationRecorderException', + ), + array( + 'reason' => 'You have specified a resource that is either unknown or has not been discovered.', + 'class' => 'ResourceNotDiscoveredException', + ), + ), + ), + 'PutConfigurationRecorder' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'EmptyOutput', + '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' => 'StarlingDoveService.PutConfigurationRecorder', + ), + 'ConfigurationRecorder' => array( + 'required' => true, + 'type' => 'object', + 'location' => 'json', + 'properties' => array( + 'name' => array( + 'type' => 'string', + 'minLength' => 1, + 'maxLength' => 256, + ), + 'roleARN' => array( + 'type' => 'string', + ), + ), + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'You have reached the limit on the number of recorders you can create.', + 'class' => 'MaxNumberOfConfigurationRecordersExceededException', + ), + array( + 'reason' => 'You have provided a configuration recorder name that is not valid.', + 'class' => 'InvalidConfigurationRecorderNameException', + ), + array( + 'reason' => 'You have provided a null or empty role ARN.', + 'class' => 'InvalidRoleException', + ), + ), + ), + 'PutDeliveryChannel' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'EmptyOutput', + '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' => 'StarlingDoveService.PutDeliveryChannel', + ), + 'DeliveryChannel' => array( + 'required' => true, + 'type' => 'object', + 'location' => 'json', + 'properties' => array( + 'name' => array( + 'type' => 'string', + 'minLength' => 1, + 'maxLength' => 256, + ), + 's3BucketName' => array( + 'type' => 'string', + ), + 's3KeyPrefix' => array( + 'type' => 'string', + ), + 'snsTopicARN' => array( + 'type' => 'string', + ), + ), + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'You have reached the limit on the number of delivery channels you can create.', + 'class' => 'MaxNumberOfDeliveryChannelsExceededException', + ), + array( + 'reason' => 'There are no configuration recorders available to provide the role needed to describe your resources.', + 'class' => 'NoAvailableConfigurationRecorderException', + ), + array( + 'reason' => 'The specified delivery channel name is not valid.', + 'class' => 'InvalidDeliveryChannelNameException', + ), + array( + 'reason' => 'The specified Amazon S3 bucket does not exist.', + 'class' => 'NoSuchBucketException', + ), + array( + 'reason' => 'The specified Amazon S3 key prefix is not valid.', + 'class' => 'InvalidS3KeyPrefixException', + ), + array( + 'reason' => 'The specified Amazon SNS topic does not exist.', + 'class' => 'InvalidSNSTopicARNException', + ), + array( + 'reason' => 'Your Amazon S3 bucket policy does not permit AWS Config to write to it.', + 'class' => 'InsufficientDeliveryPolicyException', + ), + ), + ), + 'StartConfigurationRecorder' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'EmptyOutput', + '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' => 'StarlingDoveService.StartConfigurationRecorder', + ), + 'ConfigurationRecorderName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 256, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'You have specified a configuration recorder that does not exist.', + 'class' => 'NoSuchConfigurationRecorderException', + ), + array( + 'reason' => 'There is no delivery channel available to record configurations.', + 'class' => 'NoAvailableDeliveryChannelException', + ), + ), + ), + 'StopConfigurationRecorder' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'EmptyOutput', + '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' => 'StarlingDoveService.StopConfigurationRecorder', + ), + 'ConfigurationRecorderName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 256, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'You have specified a configuration recorder that does not exist.', + 'class' => 'NoSuchConfigurationRecorderException', + ), + ), + ), + ), + 'models' => array( + 'EmptyOutput' => array( + 'type' => 'object', + 'additionalProperties' => true, + ), + 'DeliverConfigSnapshotResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'configSnapshotId' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + ), + 'DescribeConfigurationRecorderStatusResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'ConfigurationRecordersStatus' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'ConfigurationRecorderStatus', + 'type' => 'object', + 'properties' => array( + 'name' => array( + 'type' => 'string', + ), + 'lastStartTime' => array( + 'type' => 'string', + ), + 'lastStopTime' => array( + 'type' => 'string', + ), + 'recording' => array( + 'type' => 'boolean', + ), + 'lastStatus' => array( + 'type' => 'string', + ), + 'lastErrorCode' => array( + 'type' => 'string', + ), + 'lastErrorMessage' => array( + 'type' => 'string', + ), + 'lastStatusChangeTime' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + 'DescribeConfigurationRecordersResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'ConfigurationRecorders' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'ConfigurationRecorder', + 'type' => 'object', + 'properties' => array( + 'name' => array( + 'type' => 'string', + ), + 'roleARN' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + 'DescribeDeliveryChannelStatusResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'DeliveryChannelsStatus' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'DeliveryChannelStatus', + 'type' => 'object', + 'properties' => array( + 'name' => array( + 'type' => 'string', + ), + 'configSnapshotDeliveryInfo' => array( + 'type' => 'object', + 'properties' => array( + 'lastStatus' => array( + 'type' => 'string', + ), + 'lastErrorCode' => array( + 'type' => 'string', + ), + 'lastErrorMessage' => array( + 'type' => 'string', + ), + 'lastAttemptTime' => array( + 'type' => 'string', + ), + 'lastSuccessfulTime' => array( + 'type' => 'string', + ), + ), + ), + 'configHistoryDeliveryInfo' => array( + 'type' => 'object', + 'properties' => array( + 'lastStatus' => array( + 'type' => 'string', + ), + 'lastErrorCode' => array( + 'type' => 'string', + ), + 'lastErrorMessage' => array( + 'type' => 'string', + ), + 'lastAttemptTime' => array( + 'type' => 'string', + ), + 'lastSuccessfulTime' => array( + 'type' => 'string', + ), + ), + ), + 'configStreamDeliveryInfo' => array( + 'type' => 'object', + 'properties' => array( + 'lastStatus' => array( + 'type' => 'string', + ), + 'lastErrorCode' => array( + 'type' => 'string', + ), + 'lastErrorMessage' => array( + 'type' => 'string', + ), + 'lastStatusChangeTime' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + ), + ), + 'DescribeDeliveryChannelsResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'DeliveryChannels' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'DeliveryChannel', + 'type' => 'object', + 'properties' => array( + 'name' => array( + 'type' => 'string', + ), + 's3BucketName' => array( + 'type' => 'string', + ), + 's3KeyPrefix' => array( + 'type' => 'string', + ), + 'snsTopicARN' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + 'GetResourceConfigHistoryResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'configurationItems' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'ConfigurationItem', + 'type' => 'object', + 'properties' => array( + 'version' => array( + 'type' => 'string', + ), + 'accountId' => array( + 'type' => 'string', + ), + 'configurationItemCaptureTime' => array( + 'type' => 'string', + ), + 'configurationItemStatus' => array( + 'type' => 'string', + ), + 'configurationStateId' => array( + 'type' => 'string', + ), + 'configurationItemMD5Hash' => array( + 'type' => 'string', + ), + 'arn' => array( + 'type' => 'string', + ), + 'resourceType' => array( + 'type' => 'string', + ), + 'resourceId' => array( + 'type' => 'string', + ), + 'availabilityZone' => array( + 'type' => 'string', + ), + 'resourceCreationTime' => array( + 'type' => 'string', + ), + 'tags' => array( + 'type' => 'object', + 'additionalProperties' => array( + 'type' => 'string', + ), + ), + 'relatedEvents' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'RelatedEvent', + 'type' => 'string', + ), + ), + 'relationships' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Relationship', + 'type' => 'object', + 'properties' => array( + 'resourceType' => array( + 'type' => 'string', + ), + 'resourceId' => array( + 'type' => 'string', + ), + 'relationshipName' => array( + 'type' => 'string', + ), + ), + ), + ), + 'configuration' => array( + 'type' => 'string', + ), + ), + ), + ), + 'nextToken' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + ), + ), + 'iterators' => array( + 'GetResourceConfigHistory' => array( + 'input_token' => 'nextToken', + 'output_token' => 'nextToken', + 'limit_key' => 'limit', + 'result_key' => 'configurationItems', + ), + ), +); diff --git a/inc/aws-sdk/Aws/DataPipeline/DataPipelineClient.php b/inc/aws-sdk/Aws/DataPipeline/DataPipelineClient.php index bcfde9c..c21cea7 100755 --- a/inc/aws-sdk/Aws/DataPipeline/DataPipelineClient.php +++ b/inc/aws-sdk/Aws/DataPipeline/DataPipelineClient.php @@ -28,7 +28,9 @@ use Guzzle\Service\Resource\ResourceIteratorInterface; * Client to interact with AWS Data Pipeline * * @method Model activatePipeline(array $args = array()) {@command DataPipeline ActivatePipeline} + * @method Model addTags(array $args = array()) {@command DataPipeline AddTags} * @method Model createPipeline(array $args = array()) {@command DataPipeline CreatePipeline} + * @method Model deactivatePipeline(array $args = array()) {@command DataPipeline DeactivatePipeline} * @method Model deletePipeline(array $args = array()) {@command DataPipeline DeletePipeline} * @method Model describeObjects(array $args = array()) {@command DataPipeline DescribeObjects} * @method Model describePipelines(array $args = array()) {@command DataPipeline DescribePipelines} @@ -38,6 +40,7 @@ use Guzzle\Service\Resource\ResourceIteratorInterface; * @method Model pollForTask(array $args = array()) {@command DataPipeline PollForTask} * @method Model putPipelineDefinition(array $args = array()) {@command DataPipeline PutPipelineDefinition} * @method Model queryObjects(array $args = array()) {@command DataPipeline QueryObjects} + * @method Model removeTags(array $args = array()) {@command DataPipeline RemoveTags} * @method Model reportTaskProgress(array $args = array()) {@command DataPipeline ReportTaskProgress} * @method Model reportTaskRunnerHeartbeat(array $args = array()) {@command DataPipeline ReportTaskRunnerHeartbeat} * @method Model setStatus(array $args = array()) {@command DataPipeline SetStatus} @@ -45,10 +48,11 @@ use Guzzle\Service\Resource\ResourceIteratorInterface; * @method Model validatePipelineDefinition(array $args = array()) {@command DataPipeline ValidatePipelineDefinition} * @method ResourceIteratorInterface getListPipelinesIterator(array $args = array()) The input array uses the parameters of the ListPipelines operation * @method ResourceIteratorInterface getDescribeObjectsIterator(array $args = array()) The input array uses the parameters of the DescribeObjects operation + * @method ResourceIteratorInterface getDescribePipelinesIterator(array $args = array()) The input array uses the parameters of the DescribePipelines operation * @method ResourceIteratorInterface getQueryObjectsIterator(array $args = array()) The input array uses the parameters of the QueryObjects operation * - * @link http://docs.aws.amazon.com/aws-sdk-php/guide/latest/service-datapipeline.html User guide - * @link http://docs.aws.amazon.com/aws-sdk-php/latest/class-Aws.DataPipeline.DataPipelineClient.html API docs + * @link http://docs.aws.amazon.com/aws-sdk-php/v2/guide/service-datapipeline.html User guide + * @link http://docs.aws.amazon.com/aws-sdk-php/v2/api/class-Aws.DataPipeline.DataPipelineClient.html API docs */ class DataPipelineClient extends AbstractClient { @@ -60,7 +64,7 @@ class DataPipelineClient extends AbstractClient * @param array|Collection $config Client configuration data * * @return self - * @see \Aws\Common\Client\DefaultClient for a list of available configuration options + * @link http://docs.aws.amazon.com/aws-sdk-php/v2/guide/configuration.html#client-configuration-options */ public static function factory($config = array()) { @@ -72,23 +76,6 @@ class DataPipelineClient extends AbstractClient Options::SERVICE_DESCRIPTION => __DIR__ . '/Resources/datapipeline-%s.php' )) ->setExceptionParser(new JsonQueryExceptionParser()) - ->setIteratorsConfig(array( - 'limit_key' => 'limit', - 'more_key' => 'hasMoreResults', - 'token_param' => 'marker', - 'token_key' => 'marker', - 'operations' => array( - 'ListPipelines' => array( - 'result_key' => 'pipelineIdList', - ), - 'DescribeObjects' => array( - 'result_key' => 'pipelineObjects', - ), - 'QueryObjects' => array( - 'result_key' => 'ids', - ), - ) - )) ->build(); return $client; diff --git a/inc/aws-sdk/Aws/DataPipeline/Resources/datapipeline-2012-10-29.php b/inc/aws-sdk/Aws/DataPipeline/Resources/datapipeline-2012-10-29.php index df7c282..5a3fae4 100755 --- a/inc/aws-sdk/Aws/DataPipeline/Resources/datapipeline-2012-10-29.php +++ b/inc/aws-sdk/Aws/DataPipeline/Resources/datapipeline-2012-10-29.php @@ -29,6 +29,26 @@ return array ( 'https' => true, 'hostname' => 'datapipeline.us-east-1.amazonaws.com', ), + 'us-west-2' => array( + 'http' => false, + 'https' => true, + 'hostname' => 'datapipeline.us-west-2.amazonaws.com', + ), + 'eu-west-1' => array( + 'http' => false, + 'https' => true, + 'hostname' => 'datapipeline.eu-west-1.amazonaws.com', + ), + 'ap-southeast-2' => array( + 'http' => false, + 'https' => true, + 'hostname' => 'datapipeline.ap-southeast-2.amazonaws.com', + ), + 'ap-northeast-1' => array( + 'http' => false, + 'https' => true, + 'hostname' => 'datapipeline.ap-northeast-1.amazonaws.com', + ), ), 'operations' => array( 'ActivatePipeline' => array( @@ -59,6 +79,36 @@ return array ( 'minLength' => 1, 'maxLength' => 1024, ), + 'parameterValues' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'ParameterValue', + 'type' => 'object', + 'properties' => array( + 'id' => array( + 'required' => true, + 'type' => 'string', + 'minLength' => 1, + 'maxLength' => 256, + ), + 'stringValue' => array( + 'required' => true, + 'type' => 'string', + 'maxLength' => 10240, + ), + ), + ), + ), + 'startTimestamp' => array( + 'type' => array( + 'object', + 'string', + 'integer', + ), + 'format' => 'date-time', + 'location' => 'json', + ), ), 'errorResponses' => array( array( @@ -79,6 +129,77 @@ return array ( ), ), ), + 'AddTags' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'EmptyOutput', + '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' => 'DataPipeline.AddTags', + ), + 'pipelineId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 1024, + ), + 'tags' => array( + 'required' => true, + 'type' => 'array', + 'location' => 'json', + 'maxItems' => 10, + 'items' => array( + 'name' => 'Tag', + 'type' => 'object', + 'properties' => array( + 'key' => array( + 'required' => true, + 'type' => 'string', + 'minLength' => 1, + 'maxLength' => 128, + ), + 'value' => array( + 'required' => true, + 'type' => 'string', + 'maxLength' => 256, + ), + ), + ), + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'An internal service error occurred.', + 'class' => 'InternalServiceErrorException', + ), + array( + 'reason' => 'The request was not valid. Verify that your request was properly formatted, that the signature was generated with the correct credentials, and that you haven\'t exceeded any of the service limits for your account.', + 'class' => 'InvalidRequestException', + ), + array( + 'reason' => 'The specified pipeline was not found. Verify that you used the correct user and account identifiers.', + 'class' => 'PipelineNotFoundException', + ), + array( + 'reason' => 'The specified pipeline has been deleted.', + 'class' => 'PipelineDeletedException', + ), + ), + ), 'CreatePipeline' => array( 'httpMethod' => 'POST', 'uri' => '/', @@ -119,8 +240,83 @@ return array ( 'location' => 'json', 'maxLength' => 1024, ), + 'tags' => array( + 'type' => 'array', + 'location' => 'json', + 'maxItems' => 10, + 'items' => array( + 'name' => 'Tag', + 'type' => 'object', + 'properties' => array( + 'key' => array( + 'required' => true, + 'type' => 'string', + 'minLength' => 1, + 'maxLength' => 128, + ), + 'value' => array( + 'required' => true, + 'type' => 'string', + 'maxLength' => 256, + ), + ), + ), + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'An internal service error occurred.', + 'class' => 'InternalServiceErrorException', + ), + array( + 'reason' => 'The request was not valid. Verify that your request was properly formatted, that the signature was generated with the correct credentials, and that you haven\'t exceeded any of the service limits for your account.', + 'class' => 'InvalidRequestException', + ), + ), + ), + 'DeactivatePipeline' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'EmptyOutput', + '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' => 'DataPipeline.DeactivatePipeline', + ), + 'pipelineId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 1024, + ), + 'cancelActive' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'json', + ), ), 'errorResponses' => array( + array( + 'reason' => 'The specified pipeline was not found. Verify that you used the correct user and account identifiers.', + 'class' => 'PipelineNotFoundException', + ), + array( + 'reason' => 'The specified pipeline has been deleted.', + 'class' => 'PipelineDeletedException', + ), array( 'reason' => 'An internal service error occurred.', 'class' => 'InternalServiceErrorException', @@ -591,6 +787,64 @@ return array ( ), ), ), + 'parameterObjects' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'ParameterObject', + 'type' => 'object', + 'properties' => array( + 'id' => array( + 'required' => true, + 'type' => 'string', + 'minLength' => 1, + 'maxLength' => 256, + ), + 'attributes' => array( + 'required' => true, + 'type' => 'array', + 'items' => array( + 'name' => 'ParameterAttribute', + 'type' => 'object', + 'properties' => array( + 'key' => array( + 'required' => true, + 'type' => 'string', + 'minLength' => 1, + 'maxLength' => 256, + ), + 'stringValue' => array( + 'required' => true, + 'type' => 'string', + 'maxLength' => 10240, + ), + ), + ), + ), + ), + ), + ), + 'parameterValues' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'ParameterValue', + 'type' => 'object', + 'properties' => array( + 'id' => array( + 'required' => true, + 'type' => 'string', + 'minLength' => 1, + 'maxLength' => 256, + ), + 'stringValue' => array( + 'required' => true, + 'type' => 'string', + 'maxLength' => 10240, + ), + ), + ), + ), ), 'errorResponses' => array( array( @@ -700,6 +954,64 @@ return array ( ), ), ), + 'RemoveTags' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'EmptyOutput', + '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' => 'DataPipeline.RemoveTags', + ), + 'pipelineId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 1024, + ), + 'tagKeys' => array( + 'required' => true, + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'string', + 'type' => 'string', + 'maxLength' => 1024, + ), + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'An internal service error occurred.', + 'class' => 'InternalServiceErrorException', + ), + array( + 'reason' => 'The request was not valid. Verify that your request was properly formatted, that the signature was generated with the correct credentials, and that you haven\'t exceeded any of the service limits for your account.', + 'class' => 'InvalidRequestException', + ), + array( + 'reason' => 'The specified pipeline was not found. Verify that you used the correct user and account identifiers.', + 'class' => 'PipelineNotFoundException', + ), + array( + 'reason' => 'The specified pipeline has been deleted.', + 'class' => 'PipelineDeletedException', + ), + ), + ), 'ReportTaskProgress' => array( 'httpMethod' => 'POST', 'uri' => '/', @@ -728,6 +1040,31 @@ return array ( 'minLength' => 1, 'maxLength' => 2048, ), + 'fields' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'Field', + 'type' => 'object', + 'properties' => array( + 'key' => array( + 'required' => true, + 'type' => 'string', + 'minLength' => 1, + 'maxLength' => 256, + ), + 'stringValue' => array( + 'type' => 'string', + 'maxLength' => 10240, + ), + 'refValue' => array( + 'type' => 'string', + 'minLength' => 1, + 'maxLength' => 256, + ), + ), + ), + ), ), 'errorResponses' => array( array( @@ -900,11 +1237,6 @@ return array ( 'required' => true, 'type' => 'string', 'location' => 'json', - 'enum' => array( - 'FINISHED', - 'FAILED', - 'FALSE', - ), ), 'errorId' => array( 'type' => 'string', @@ -1020,6 +1352,64 @@ return array ( ), ), ), + 'parameterObjects' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'ParameterObject', + 'type' => 'object', + 'properties' => array( + 'id' => array( + 'required' => true, + 'type' => 'string', + 'minLength' => 1, + 'maxLength' => 256, + ), + 'attributes' => array( + 'required' => true, + 'type' => 'array', + 'items' => array( + 'name' => 'ParameterAttribute', + 'type' => 'object', + 'properties' => array( + 'key' => array( + 'required' => true, + 'type' => 'string', + 'minLength' => 1, + 'maxLength' => 256, + ), + 'stringValue' => array( + 'required' => true, + 'type' => 'string', + 'maxLength' => 10240, + ), + ), + ), + ), + ), + ), + ), + 'parameterValues' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'ParameterValue', + 'type' => 'object', + 'properties' => array( + 'id' => array( + 'required' => true, + 'type' => 'string', + 'minLength' => 1, + 'maxLength' => 256, + ), + 'stringValue' => array( + 'required' => true, + 'type' => 'string', + 'maxLength' => 10240, + ), + ), + ), + ), ), 'errorResponses' => array( array( @@ -1142,6 +1532,21 @@ return array ( 'description' => array( 'type' => 'string', ), + 'tags' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Tag', + 'type' => 'object', + 'properties' => array( + 'key' => array( + 'type' => 'string', + ), + 'value' => array( + 'type' => 'string', + ), + ), + ), + ), ), ), ), @@ -1195,6 +1600,50 @@ return array ( ), ), ), + 'parameterObjects' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'ParameterObject', + 'type' => 'object', + 'properties' => array( + 'id' => array( + 'type' => 'string', + ), + 'attributes' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'ParameterAttribute', + 'type' => 'object', + 'properties' => array( + 'key' => array( + 'type' => 'string', + ), + 'stringValue' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + ), + 'parameterValues' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'ParameterValue', + 'type' => 'object', + 'properties' => array( + 'id' => array( + 'type' => 'string', + ), + 'stringValue' => array( + 'type' => 'string', + ), + ), + ), + ), ), ), 'ListPipelinesOutput' => array( @@ -1423,4 +1872,28 @@ return array ( ), ), ), + 'iterators' => array( + 'ListPipelines' => array( + 'input_token' => 'marker', + 'output_token' => 'marker', + 'more_results' => 'hasMoreResults', + 'result_key' => 'pipelineIdList', + ), + 'DescribeObjects' => array( + 'input_token' => 'marker', + 'output_token' => 'marker', + 'more_results' => 'hasMoreResults', + 'result_key' => 'pipelineObjects', + ), + 'DescribePipelines' => array( + 'result_key' => 'pipelineDescriptionList', + ), + 'QueryObjects' => array( + 'input_token' => 'marker', + 'output_token' => 'marker', + 'more_results' => 'hasMoreResults', + 'limit_key' => 'limit', + 'result_key' => 'ids', + ), + ), ); diff --git a/inc/aws-sdk/Aws/DirectConnect/DirectConnectClient.php b/inc/aws-sdk/Aws/DirectConnect/DirectConnectClient.php index ec327bc..fab45ce 100755 --- a/inc/aws-sdk/Aws/DirectConnect/DirectConnectClient.php +++ b/inc/aws-sdk/Aws/DirectConnect/DirectConnectClient.php @@ -47,12 +47,14 @@ use Guzzle\Service\Resource\ResourceIteratorInterface; * @method Model describeVirtualGateways(array $args = array()) {@command DirectConnect DescribeVirtualGateways} * @method Model describeVirtualInterfaces(array $args = array()) {@command DirectConnect DescribeVirtualInterfaces} * @method ResourceIteratorInterface getDescribeConnectionsIterator(array $args = array()) The input array uses the parameters of the DescribeConnections operation - * @method ResourceIteratorInterface getDescribeOfferingsIterator(array $args = array()) The input array uses the parameters of the DescribeOfferings operation + * @method ResourceIteratorInterface getDescribeConnectionsOnInterconnectIterator(array $args = array()) The input array uses the parameters of the DescribeConnectionsOnInterconnect operation + * @method ResourceIteratorInterface getDescribeInterconnectsIterator(array $args = array()) The input array uses the parameters of the DescribeInterconnects operation + * @method ResourceIteratorInterface getDescribeLocationsIterator(array $args = array()) The input array uses the parameters of the DescribeLocations operation * @method ResourceIteratorInterface getDescribeVirtualGatewaysIterator(array $args = array()) The input array uses the parameters of the DescribeVirtualGateways operation * @method ResourceIteratorInterface getDescribeVirtualInterfacesIterator(array $args = array()) The input array uses the parameters of the DescribeVirtualInterfaces operation * - * @link http://docs.aws.amazon.com/aws-sdk-php/guide/latest/service-directconnect.html User guide - * @link http://docs.aws.amazon.com/aws-sdk-php/latest/class-Aws.DirectConnect.DirectConnectClient.html API docs + * @link http://docs.aws.amazon.com/aws-sdk-php/v2/guide/service-directconnect.html User guide + * @link http://docs.aws.amazon.com/aws-sdk-php/v2/api/class-Aws.DirectConnect.DirectConnectClient.html API docs */ class DirectConnectClient extends AbstractClient { @@ -64,7 +66,7 @@ class DirectConnectClient extends AbstractClient * @param array|Collection $config Client configuration data * * @return self - * @see \Aws\Common\Client\DefaultClient for a list of available configuration options + * @link http://docs.aws.amazon.com/aws-sdk-php/v2/guide/configuration.html#client-configuration-options */ public static function factory($config = array()) { @@ -75,22 +77,6 @@ class DirectConnectClient extends AbstractClient Options::SERVICE_DESCRIPTION => __DIR__ . '/Resources/directconnect-%s.php' )) ->setExceptionParser(new JsonQueryExceptionParser()) - ->setIteratorsConfig(array( - 'operations' => array( - 'DescribeConnections' => array( - 'result_key' => 'connections', - ), - 'DescribeOfferings' => array( - 'result_key' => 'offerings', - ), - 'DescribeVirtualGateways' => array( - 'result_key' => 'virtualGateways', - ), - 'DescribeVirtualInterfaces' => array( - 'result_key' => 'virtualInterfaces', - ), - ) - )) ->build(); } } diff --git a/inc/aws-sdk/Aws/DirectConnect/Resources/directconnect-2012-10-25.php b/inc/aws-sdk/Aws/DirectConnect/Resources/directconnect-2012-10-25.php index 72282d0..2dd64c6 100755 --- a/inc/aws-sdk/Aws/DirectConnect/Resources/directconnect-2012-10-25.php +++ b/inc/aws-sdk/Aws/DirectConnect/Resources/directconnect-2012-10-25.php @@ -1371,4 +1371,24 @@ return array ( ), ), ), + 'iterators' => array( + 'DescribeConnections' => array( + 'result_key' => 'connections', + ), + 'DescribeConnectionsOnInterconnect' => array( + 'result_key' => 'connections', + ), + 'DescribeInterconnects' => array( + 'result_key' => 'interconnects', + ), + 'DescribeLocations' => array( + 'result_key' => 'locations', + ), + 'DescribeVirtualGateways' => array( + 'result_key' => 'virtualGateways', + ), + 'DescribeVirtualInterfaces' => array( + 'result_key' => 'virtualInterfaces', + ), + ), ); diff --git a/inc/aws-sdk/Aws/DynamoDb/DynamoDbClient.php b/inc/aws-sdk/Aws/DynamoDb/DynamoDbClient.php index 077b935..0ad1bcb 100755 --- a/inc/aws-sdk/Aws/DynamoDb/DynamoDbClient.php +++ b/inc/aws-sdk/Aws/DynamoDb/DynamoDbClient.php @@ -50,15 +50,15 @@ use Guzzle\Service\Resource\ResourceIteratorInterface; * @method Model scan(array $args = array()) {@command DynamoDb Scan} * @method Model updateItem(array $args = array()) {@command DynamoDb UpdateItem} * @method Model updateTable(array $args = array()) {@command DynamoDb UpdateTable} - * @method waitUntilTableExists(array $input) Wait until a table exists and can be accessed The input array uses the parameters of the DescribeTable operation and waiter specific settings - * @method waitUntilTableNotExists(array $input) Wait until a table is deleted The input array uses the parameters of the DescribeTable operation and waiter specific settings + * @method waitUntilTableExists(array $input) The input array uses the parameters of the DescribeTable operation and waiter specific settings + * @method waitUntilTableNotExists(array $input) The input array uses the parameters of the DescribeTable operation and waiter specific settings * @method ResourceIteratorInterface getBatchGetItemIterator(array $args = array()) The input array uses the parameters of the BatchGetItem operation * @method ResourceIteratorInterface getListTablesIterator(array $args = array()) The input array uses the parameters of the ListTables operation * @method ResourceIteratorInterface getQueryIterator(array $args = array()) The input array uses the parameters of the Query operation * @method ResourceIteratorInterface getScanIterator(array $args = array()) The input array uses the parameters of the Scan operation * - * @link http://docs.aws.amazon.com/aws-sdk-php/guide/latest/service-dynamodb.html User guide - * @link http://docs.aws.amazon.com/aws-sdk-php/latest/class-Aws.DynamoDb.DynamoDbClient.html API docs + * @link http://docs.aws.amazon.com/aws-sdk-php/v2/guide/service-dynamodb.html User guide + * @link http://docs.aws.amazon.com/aws-sdk-php/v2/api/class-Aws.DynamoDb.DynamoDbClient.html API docs */ class DynamoDbClient extends AbstractClient { @@ -70,34 +70,14 @@ class DynamoDbClient extends AbstractClient * @param array|Collection $config Client configuration data * * @return self - * @see \Aws\Common\Client\DefaultClient for a list of available configuration options + * @link http://docs.aws.amazon.com/aws-sdk-php/v2/guide/configuration.html#client-configuration-options */ public static function factory($config = array()) { // Configure the custom exponential backoff plugin for DynamoDB throttling $exceptionParser = new JsonQueryExceptionParser(); if (!isset($config[Options::BACKOFF])) { - $config[Options::BACKOFF] = new BackoffPlugin( - // Retry requests (even if successful) if the CRC32 header is does not match the CRC32 of the response - new Crc32ErrorChecker( - // Retry failed requests up to 11 times instead of the normal 3 - new TruncatedBackoffStrategy(11, - // Retry failed requests with 400-level responses due to throttling - new ThrottlingErrorChecker($exceptionParser, - // Retry failed requests with 500-level responses - new HttpBackoffStrategy(null, - // Retry failed requests due to transient network or cURL problems - new CurlBackoffStrategy(null, - new ExpiredCredentialsChecker($exceptionParser, - // Use the custom retry delay method instead of default exponential backoff - new CallbackBackoffStrategy(__CLASS__ . '::calculateRetryDelay', false) - ) - ) - ) - ) - ) - ) - ); + $config[Options::BACKOFF] = self::createBackoffPlugin($exceptionParser); } // Construct the DynamoDB client with the client builder @@ -112,28 +92,41 @@ class DynamoDbClient extends AbstractClient self::COMMAND_PARAMS => array(Cmd::RESPONSE_PROCESSING => Cmd::TYPE_NO_TRANSLATION) )) ->setExceptionParser($exceptionParser) - ->setIteratorsConfig(array( - 'result_key' => 'Items', - 'token_param' => 'ExclusiveStartKey', - 'token_key' => 'LastEvaluatedKey', - 'operations' => array( - 'BatchGetItem' => array( - 'token_param' => 'RequestItems', - 'token_key' => 'UnprocessedKeys', - 'result_key' => 'Responses/*', - ), - 'ListTables' => array( - 'result_key' => 'TableNames', - 'token_param' => 'ExclusiveStartTableName', - 'token_key' => 'LastEvaluatedTableName', - ), - 'Query', - 'Scan', - ) - )) ->build(); } + /** + * Create an Amazon DynamoDB specific backoff plugin + * + * @param JsonQueryExceptionParser $exceptionParser + * + * @return BackoffPlugin + */ + private static function createBackoffPlugin(JsonQueryExceptionParser $exceptionParser) + { + return new BackoffPlugin( + // Retry requests (even if successful) if the CRC32 header is does not match the CRC32 of the response + new Crc32ErrorChecker( + // Retry failed requests up to 11 times instead of the normal 3 + new TruncatedBackoffStrategy(11, + // Retry failed requests with 400-level responses due to throttling + new ThrottlingErrorChecker($exceptionParser, + // Retry failed requests with 500-level responses + new HttpBackoffStrategy(null, + // Retry failed requests due to transient network or cURL problems + new CurlBackoffStrategy(null, + new ExpiredCredentialsChecker($exceptionParser, + // Use the custom retry delay method instead of default exponential backoff + new CallbackBackoffStrategy(__CLASS__ . '::calculateRetryDelay', false) + ) + ) + ) + ) + ) + ) + ); + } + /** * Formats a value as a DynamoDB attribute. * @@ -141,6 +134,8 @@ class DynamoDbClient extends AbstractClient * @param string $format The type of format (e.g. put, update). * * @return array The formatted value. + * @deprecated The new DynamoDB document model, including the new types + * (L, M, BOOL, NULL), is not supported by this method. */ public function formatValue($value, $format = Attribute::FORMAT_PUT) { @@ -154,6 +149,8 @@ class DynamoDbClient extends AbstractClient * @param string $format The type of format (e.g. put, update). * * @return array The formatted values. + * @deprecated The new DynamoDB document model, including the new types + * (L, M, BOOL, NULL), is not supported by this method. */ public function formatAttributes(array $values, $format = Attribute::FORMAT_PUT) { diff --git a/inc/aws-sdk/Aws/DynamoDb/DynamoDbCommand.php b/inc/aws-sdk/Aws/DynamoDb/DynamoDbCommand.php new file mode 100644 index 0000000..f4ef75f --- /dev/null +++ b/inc/aws-sdk/Aws/DynamoDb/DynamoDbCommand.php @@ -0,0 +1,100 @@ +result as $key => $value) { + $this->result[$key] = self::unmarshalAttributes($value); + } + } + } + + /** + * Recursively searches for N/NS/B/BS values within the given value and + * marshals them (e.g., base64_encode) into a DynamoDB compatible format. + * + * @param mixed $value + * + * @return mixed + */ + public static function marshalAttributes($value) + { + if (is_array($value)) { + array_walk($value, ($fn = function(&$v, $k) use (&$fn) { + if ($k === 'N' && (is_int($v) || is_float($v))) { + $v = strval($v); + } elseif ($k === 'NS' && is_array($v) && isset($v[0])) { + $v = array_map('strval', $v); + } elseif ($k === 'B' && is_string($v)) { + $v = base64_encode($v); + } elseif ($k === 'BS' && is_array($v) && isset($v[0])) { + $v = array_map('base64_encode', $v); + } elseif (is_array($v)) { + array_walk($v, $fn); + } + })); + } + + return $value; + } + + /** + * Recursively searches for B/BS values within the given value and + * decodes them into their original string format. + * + * @param mixed $value + * + * @return mixed + */ + public static function unmarshalAttributes($value) + { + if (is_array($value)) { + array_walk($value, ($fn = function(&$v, $k) use (&$fn) { + if ($k === 'B' && is_string($v)) { + $v = base64_decode($v); + } elseif ($k === 'BS' && is_array($v) && isset($v[0])) { + $v = array_map('base64_decode', $v); + } elseif (is_array($v)) { + array_walk($v, $fn); + } + })); + } + + return $value; + } +} diff --git a/inc/aws-sdk/Aws/DynamoDb/Enum/IndexStatus.php b/inc/aws-sdk/Aws/DynamoDb/Enum/IndexStatus.php new file mode 100644 index 0000000..22c2385 --- /dev/null +++ b/inc/aws-sdk/Aws/DynamoDb/Enum/IndexStatus.php @@ -0,0 +1,30 @@ +marshalValue($data)); + } + + /** + * Marshal a native PHP array of data to a new array that is formatted in + * the proper parameter structure required by DynamoDB operations. + * + * @param array|\stdClass $item An associative array of data. + * + * @return array + */ + public function marshalItem($item) + { + return current($this->marshalValue($item)); + } + + /** + * Marshal a native PHP value into an array that is formatted in the proper + * parameter structure required by DynamoDB operations. + * + * @param mixed $value A scalar, array, or stdClass value. + * + * @return array Formatted like `array(TYPE => VALUE)`. + * @throws \UnexpectedValueException if the value cannot be marshaled. + */ + public function marshalValue($value) + { + $type = gettype($value); + if ($type === 'string' && $value !== '') { + $type = 'S'; + } elseif ($type === 'integer' || $type === 'double') { + $type = 'N'; + $value = (string) $value; + } elseif ($type === 'boolean') { + $type = 'BOOL'; + } elseif ($type === 'NULL') { + $type = 'NULL'; + $value = true; + } elseif ($type === 'array' + || $value instanceof \Traversable + || $value instanceof \stdClass + ) { + $type = $value instanceof \stdClass ? 'M' : 'L'; + $data = array(); + $expectedIndex = -1; + foreach ($value as $k => $v) { + $data[$k] = $this->marshalValue($v); + if ($type === 'L' && (!is_int($k) || $k != ++$expectedIndex)) { + $type = 'M'; + } + } + $value = $data; + } else { + $type = $type === 'object' ? get_class($value) : $type; + throw new \UnexpectedValueException('Marshaling error: ' . ($value + ? "encountered unexpected type \"{$type}\"." + : 'encountered empty value.' + )); + } + + return array($type => $value); + } + + /** + * Unmarshal a document (item) from a DynamoDB operation result into a JSON + * document string. + * + * @param array $data Item/document from a DynamoDB result. + * @param int $jsonEncodeFlags Flags to use with `json_encode()`. + * + * @return string + */ + public function unmarshalJson(array $data, $jsonEncodeFlags = 0) + { + return json_encode( + $this->unmarshalValue(array('M' => $data), true), + $jsonEncodeFlags + ); + } + + /** + * Unmarshal an item from a DynamoDB operation result into a native PHP + * array. If you set $mapAsObject to true, then a stdClass value will be + * returned instead. + * + * @param array $data Item from a DynamoDB result. + * + * @return array|\stdClass + */ + public function unmarshalItem(array $data) + { + return $this->unmarshalValue(array('M' => $data)); + } + + /** + * Unmarshal a value from a DynamoDB operation result into a native PHP + * value. Will return a scalar, array, or (if you set $mapAsObject to true) + * stdClass value. + * + * @param array $value Value from a DynamoDB result. + * @param bool $mapAsObject Whether maps should be represented as stdClass. + * + * @return mixed + * @throws \UnexpectedValueException + */ + public function unmarshalValue(array $value, $mapAsObject = false) + { + list($type, $value) = each($value); + switch ($type) { + case 'S': + case 'SS': + case 'B': + case 'BS': + case 'BOOL': + return $value; + case 'NULL': + return null; + case 'N': + // Use type coercion to unmarshal numbers to int/float. + return $value + 0; + case 'NS': + foreach ($value as &$v) { + $v += 0; + } + return $value; + case 'M': + if ($mapAsObject) { + $data = new \stdClass; + foreach ($value as $k => $v) { + $data->$k = $this->unmarshalValue($v, $mapAsObject); + } + return $data; + } + // Else, unmarshal M the same way as L. + case 'L': + foreach ($value as &$v) { + $v = $this->unmarshalValue($v, $mapAsObject); + } + return $value; + } + + throw new \UnexpectedValueException("Unexpected type: {$type}."); + } +} diff --git a/inc/aws-sdk/Aws/DynamoDb/Model/Attribute.php b/inc/aws-sdk/Aws/DynamoDb/Model/Attribute.php index 9b5d2ed..14a403e 100755 --- a/inc/aws-sdk/Aws/DynamoDb/Model/Attribute.php +++ b/inc/aws-sdk/Aws/DynamoDb/Model/Attribute.php @@ -23,6 +23,9 @@ use Guzzle\Common\ToArrayInterface; /** * Class representing a DynamoDB item attribute. Contains helpers for building * attributes and arrays of attributes. + * + * @deprecated The new DynamoDB document model, including the new types (L, M, + * BOOL, NULL), is not supported by this class. */ class Attribute implements ToArrayInterface { diff --git a/inc/aws-sdk/Aws/DynamoDb/Model/BatchRequest/PutRequest.php b/inc/aws-sdk/Aws/DynamoDb/Model/BatchRequest/PutRequest.php index eec3d1c..adbd345 100755 --- a/inc/aws-sdk/Aws/DynamoDb/Model/BatchRequest/PutRequest.php +++ b/inc/aws-sdk/Aws/DynamoDb/Model/BatchRequest/PutRequest.php @@ -26,7 +26,7 @@ use Guzzle\Service\Command\AbstractCommand; class PutRequest extends AbstractWriteRequest { /** - * @var Item The item to be inserted into the DynamoDB table + * @var array The item to be inserted into the DynamoDB table */ protected $item; @@ -49,11 +49,6 @@ class PutRequest extends AbstractWriteRequest $table = $command->get('TableName'); $item = $command->get('Item'); - // Create an Item object from the 'item' command data - if (!($item instanceof Item)) { - $item = new Item($item, $table); - } - // Return an instantiated PutRequest object return new PutRequest($item, $table); } @@ -61,15 +56,22 @@ class PutRequest extends AbstractWriteRequest /** * Constructs a new put request * - * @param Item $item The item to put into DynamoDB - * @param string $tableName The name of the table which has the item + * @param array|Item $item The item to put into DynamoDB + * @param string $tableName The name of the table which has the item * * @throw InvalidArgumentException if the table name is not provided */ - public function __construct(Item $item, $tableName = null) + public function __construct($item, $tableName = null) { - $this->item = $item; - $this->tableName = $tableName ?: $item->getTableName(); + if ($item instanceof Item) { + $this->item = $item->toArray(); + $this->tableName = $tableName ?: $item->getTableName(); + } elseif (is_array($item)) { + $this->item = $item; + $this->tableName = $tableName; + } else { + throw new InvalidArgumentException('The item must be an array or an Item object.'); + } if (!$this->tableName) { throw new InvalidArgumentException('A table name is required to create a PutRequest.'); @@ -83,7 +85,7 @@ class PutRequest extends AbstractWriteRequest */ public function toArray() { - return array('PutRequest' => array('Item' => $this->item->toArray())); + return array('PutRequest' => array('Item' => $this->item)); } /** @@ -93,6 +95,6 @@ class PutRequest extends AbstractWriteRequest */ public function getItem() { - return $this->item; + return new Item($this->item); } } diff --git a/inc/aws-sdk/Aws/DynamoDb/Model/BatchRequest/WriteRequestBatch.php b/inc/aws-sdk/Aws/DynamoDb/Model/BatchRequest/WriteRequestBatch.php index b44e7e6..859e49a 100755 --- a/inc/aws-sdk/Aws/DynamoDb/Model/BatchRequest/WriteRequestBatch.php +++ b/inc/aws-sdk/Aws/DynamoDb/Model/BatchRequest/WriteRequestBatch.php @@ -84,7 +84,7 @@ class WriteRequestBatch extends AbstractBatchDecorator } if (!($item instanceof WriteRequestInterface)) { - throw new InvalidArgumentException('The item are are trying to add to the batch queue is invalid.'); + throw new InvalidArgumentException('The item you are trying to add to the batch queue is invalid.'); } return $this->decoratedBatch->add($item); diff --git a/inc/aws-sdk/Aws/DynamoDb/Model/BatchRequest/WriteRequestBatchTransfer.php b/inc/aws-sdk/Aws/DynamoDb/Model/BatchRequest/WriteRequestBatchTransfer.php index 7e14139..1a3813d 100755 --- a/inc/aws-sdk/Aws/DynamoDb/Model/BatchRequest/WriteRequestBatchTransfer.php +++ b/inc/aws-sdk/Aws/DynamoDb/Model/BatchRequest/WriteRequestBatchTransfer.php @@ -84,28 +84,8 @@ class WriteRequestBatchTransfer implements BatchTransferInterface return; } - // Chunk the array and prepare a set of parallel commands - $commands = array(); - foreach (array_chunk($batch, self::BATCH_WRITE_MAX_SIZE) as $chunk) { - // Convert the request items into the format required by the client - $items = array(); - foreach ($chunk as $item) { - if ($item instanceof AbstractWriteRequest) { - /** @var $item AbstractWriteRequest */ - $table = $item->getTableName(); - if (!isset($items[$table])) { - $items[$table] = array(); - } - $items[$table][] = $item->toArray(); - } - } - - // Create the BatchWriteItem request - $commands[] = $this->client->getCommand('BatchWriteItem', array( - 'RequestItems' => $items, - Ua::OPTION => Ua::BATCH - )); - } + // Prepare an array of commands to be sent in parallel from the batch + $commands = $this->prepareCommandsForBatchedItems($batch); // Execute the commands and handle exceptions try { @@ -116,11 +96,17 @@ class WriteRequestBatchTransfer implements BatchTransferInterface $unhandledExceptions = new ExceptionCollection(); // Loop through caught exceptions and handle RequestTooLarge scenarios - /** @var $e DynamoDbException */ + /** @var DynamoDbException $e */ foreach ($exceptions as $e) { - if ($e instanceof DynamoDbException && $e->getStatusCode() === 413) { - $request = $e->getResponse()->getRequest(); - $this->retryLargeRequest($request, $unprocessedRequests); + if ($e instanceof DynamoDbException) { + $request = $e->getRequest(); + if ($e->getStatusCode() === 413) { + $this->retryLargeRequest($request, $unprocessedRequests); + } elseif ($e->getExceptionCode() === 'ProvisionedThroughputExceededException') { + $this->handleUnprocessedRequestsAfterException($request, $unprocessedRequests); + } else { + $unhandledExceptions->add($e); + } } else { $unhandledExceptions->add($e); } @@ -133,6 +119,40 @@ class WriteRequestBatchTransfer implements BatchTransferInterface } } + /** + * Prepares an array of BatchWriteItem command objects for a given batch of items + * + * @param array $batch A batch of write requests + * + * @return array + */ + protected function prepareCommandsForBatchedItems(array $batch) + { + $commands = array(); + foreach (array_chunk($batch, self::BATCH_WRITE_MAX_SIZE) as $chunk) { + // Convert the request items into the format required by the client + $items = array(); + foreach ($chunk as $item) { + if ($item instanceof AbstractWriteRequest) { + /** @var AbstractWriteRequest $item */ + $table = $item->getTableName(); + if (!isset($items[$table])) { + $items[$table] = array(); + } + $items[$table][] = $item->toArray(); + } + } + + // Create the BatchWriteItem request + $commands[] = $this->client->getCommand('BatchWriteItem', array( + 'RequestItems' => $items, + Ua::OPTION => Ua::BATCH + )); + } + + return $commands; + } + /** * Handles unprocessed items from the executed commands. Unprocessed items * can be collected and thrown in an UnprocessedWriteRequestsException @@ -144,7 +164,7 @@ class WriteRequestBatchTransfer implements BatchTransferInterface array $commands, UnprocessedWriteRequestsException $unprocessedRequests ) { - /** @var $command CommandInterface */ + /** @var CommandInterface $command */ foreach ($commands as $command) { if ($command instanceof CommandInterface && $command->isExecuted()) { $result = $command->getResult(); @@ -169,8 +189,7 @@ class WriteRequestBatchTransfer implements BatchTransferInterface UnprocessedWriteRequestsException $unprocessedRequests ) { // Collect the items out from the request object - $items = json_decode($request->getBody(true), true); - $items = $this->convertResultsToUnprocessedRequests($items['RequestItems']); + $items = $this->extractItemsFromRequestObject($request); // Divide batch into smaller batches and transfer them via recursion // NOTE: Dividing the batch into 3 (instead of 2) batches resulted in less recursion during testing @@ -182,6 +201,22 @@ class WriteRequestBatchTransfer implements BatchTransferInterface } } + /** + * Handles unprocessed items if the entire batch was rejected due to exceeding the provisioned throughput + * + * @param EntityEnclosingRequestInterface $request The failed request + * @param UnprocessedWriteRequestsException $unprocessedRequests Collection of unprocessed items + */ + protected function handleUnprocessedRequestsAfterException( + EntityEnclosingRequestInterface $request, + UnprocessedWriteRequestsException $unprocessedRequests + ) { + $items = $this->extractItemsFromRequestObject($request); + foreach ($items as $request) { + $unprocessedRequests->addItem($request); + } + } + /** * Collects and creates unprocessed request objects from data collected from erroneous cases * @@ -200,4 +235,18 @@ class WriteRequestBatchTransfer implements BatchTransferInterface return $unprocessed; } + + + /** + * Helper method to extract the items from a request object for a BatchWriteItem operation + * + * @param EntityEnclosingRequestInterface $request + * + * @return array + */ + private function extractItemsFromRequestObject(EntityEnclosingRequestInterface $request) + { + $items = json_decode((string) $request->getBody(), true); + return $this->convertResultsToUnprocessedRequests($items['RequestItems'] ?: array()); + } } diff --git a/inc/aws-sdk/Aws/DynamoDb/Model/Item.php b/inc/aws-sdk/Aws/DynamoDb/Model/Item.php index 4fa6d87..11c76d3 100755 --- a/inc/aws-sdk/Aws/DynamoDb/Model/Item.php +++ b/inc/aws-sdk/Aws/DynamoDb/Model/Item.php @@ -20,6 +20,9 @@ use Guzzle\Common\ToArrayInterface; /** * Amazon DynamoDB item model + * + * @deprecated The new DynamoDB document model, including the new types (L, M, + * BOOL, NULL), is not supported by this class. */ class Item implements \ArrayAccess, \IteratorAggregate, ToArrayInterface, \Countable { diff --git a/inc/aws-sdk/Aws/DynamoDb/Resources/dynamodb-2011-12-05.php b/inc/aws-sdk/Aws/DynamoDb/Resources/dynamodb-2011-12-05.php index 0d568c0..1c1d216 100755 --- a/inc/aws-sdk/Aws/DynamoDb/Resources/dynamodb-2011-12-05.php +++ b/inc/aws-sdk/Aws/DynamoDb/Resources/dynamodb-2011-12-05.php @@ -3496,6 +3496,28 @@ return array ( ), ), ), + 'iterators' => array( + 'BatchGetItem' => array( + 'input_token' => 'RequestItems', + 'output_token' => 'UnprocessedKeys', + 'result_key' => 'Responses/*', + ), + 'ListTables' => array( + 'input_token' => 'ExclusiveStartTableName', + 'output_token' => 'LastEvaluatedTableName', + 'result_key' => 'TableNames', + ), + 'Query' => array( + 'input_token' => 'ExclusiveStartKey', + 'output_token' => 'LastEvaluatedKey', + 'result_key' => 'Items', + ), + 'Scan' => array( + 'input_token' => 'ExclusiveStartKey', + 'output_token' => 'LastEvaluatedKey', + 'result_key' => 'Items', + ), + ), 'waiters' => array( '__default__' => array( 'interval' => 20, diff --git a/inc/aws-sdk/Aws/DynamoDb/Resources/dynamodb-2012-08-10.php b/inc/aws-sdk/Aws/DynamoDb/Resources/dynamodb-2012-08-10.php index 0588d92..d57752f 100755 --- a/inc/aws-sdk/Aws/DynamoDb/Resources/dynamodb-2012-08-10.php +++ b/inc/aws-sdk/Aws/DynamoDb/Resources/dynamodb-2012-08-10.php @@ -65,6 +65,11 @@ return array ( 'https' => true, 'hostname' => 'dynamodb.sa-east-1.amazonaws.com', ), + 'cn-north-1' => array( + 'http' => true, + 'https' => true, + 'hostname' => 'dynamodb.cn-north-1.amazonaws.com.cn', + ), 'us-gov-west-1' => array( 'http' => false, 'https' => true, @@ -75,8 +80,8 @@ return array ( 'BatchGetItem' => array( 'httpMethod' => 'POST', 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'BatchGetItemOutput', + 'class' => 'Aws\\DynamoDb\\DynamoDbCommand', + 'responseClass' => 'JsonOutput', 'responseType' => 'model', 'parameters' => array( 'Content-Type' => array( @@ -93,115 +98,19 @@ return array ( 'location' => 'header', 'default' => 'DynamoDB_20120810.BatchGetItem', ), - 'RequestItems' => array( - 'required' => true, - 'type' => 'object', - 'location' => 'json', - 'additionalProperties' => array( - 'type' => 'object', - 'data' => array( - 'shape_name' => 'TableName', - 'key_pattern' => '/[a-zA-Z0-9_.-]+/', - ), - 'properties' => array( - 'Keys' => array( - 'required' => true, - 'type' => 'array', - 'minItems' => 1, - 'maxItems' => 100, - 'items' => array( - 'name' => 'Key', - 'type' => 'object', - 'additionalProperties' => array( - 'type' => 'object', - 'data' => array( - 'shape_name' => 'AttributeName', - ), - 'properties' => array( - 'S' => array( - 'type' => 'string', - ), - 'N' => array( - 'type' => 'string', - ), - 'B' => array( - 'type' => 'string', - 'filters' => array( - 'base64_encode', - ), - ), - 'SS' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'StringAttributeValue', - 'type' => 'string', - ), - ), - 'NS' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'NumberAttributeValue', - 'type' => 'string', - ), - ), - 'BS' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'BinaryAttributeValue', - 'type' => 'string', - 'filters' => array( - 'base64_encode', - ), - ), - ), - ), - ), - ), - ), - 'AttributesToGet' => array( - 'type' => 'array', - 'minItems' => 1, - 'items' => array( - 'name' => 'AttributeName', - 'type' => 'string', - ), - ), - 'ConsistentRead' => array( - 'type' => 'boolean', - 'format' => 'boolean-string', - ), - ), - ), - ), - 'ReturnConsumedCapacity' => array( - 'type' => 'string', - 'location' => 'json', - 'enum' => array( - 'TOTAL', - 'NONE', - ), - ), ), - 'errorResponses' => array( - array( - 'reason' => 'The request rate is too high, or the request is too large, for the available throughput to accommodate. The AWS SDKs automatically retry requests that receive this exception; therefore, your request will eventually succeed, unless the request is too large or your retry queue is too large to finish. Reduce the frequency of requests by using the strategies listed in Error Retries and Exponential Backoff in the Amazon DynamoDB Developer Guide.', - 'class' => 'ProvisionedThroughputExceededException', - ), - array( - 'reason' => 'The operation tried to access a nonexistent table or index. The resource may not be specified correctly, or its status may not be ACTIVE.', - 'class' => 'ResourceNotFoundException', - ), - array( - 'reason' => 'An error occurred on the server side.', - 'class' => 'InternalServerErrorException', + 'additionalParameters' => array( + 'location' => 'json', + 'filters' => array( + 'Aws\DynamoDb\DynamoDbCommand::marshalAttributes', ), ), ), 'BatchWriteItem' => array( 'httpMethod' => 'POST', 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'BatchWriteItemOutput', + 'class' => 'Aws\\DynamoDb\\DynamoDbCommand', + 'responseClass' => 'JsonOutput', 'responseType' => 'model', 'parameters' => array( 'Content-Type' => array( @@ -218,173 +127,19 @@ return array ( 'location' => 'header', 'default' => 'DynamoDB_20120810.BatchWriteItem', ), - 'RequestItems' => array( - 'required' => true, - 'type' => 'object', - 'location' => 'json', - 'additionalProperties' => array( - 'type' => 'array', - 'minItems' => 1, - 'maxItems' => 25, - 'data' => array( - 'shape_name' => 'TableName', - 'key_pattern' => '/[a-zA-Z0-9_.-]+/', - ), - 'items' => array( - 'name' => 'WriteRequest', - 'type' => 'object', - 'properties' => array( - 'PutRequest' => array( - 'type' => 'object', - 'properties' => array( - 'Item' => array( - 'required' => true, - 'type' => 'object', - 'additionalProperties' => array( - 'type' => 'object', - 'data' => array( - 'shape_name' => 'AttributeName', - ), - 'properties' => array( - 'S' => array( - 'type' => 'string', - ), - 'N' => array( - 'type' => 'string', - ), - 'B' => array( - 'type' => 'string', - 'filters' => array( - 'base64_encode', - ), - ), - 'SS' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'StringAttributeValue', - 'type' => 'string', - ), - ), - 'NS' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'NumberAttributeValue', - 'type' => 'string', - ), - ), - 'BS' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'BinaryAttributeValue', - 'type' => 'string', - 'filters' => array( - 'base64_encode', - ), - ), - ), - ), - ), - ), - ), - ), - 'DeleteRequest' => array( - 'type' => 'object', - 'properties' => array( - 'Key' => array( - 'required' => true, - 'type' => 'object', - 'additionalProperties' => array( - 'type' => 'object', - 'data' => array( - 'shape_name' => 'AttributeName', - ), - 'properties' => array( - 'S' => array( - 'type' => 'string', - ), - 'N' => array( - 'type' => 'string', - ), - 'B' => array( - 'type' => 'string', - 'filters' => array( - 'base64_encode', - ), - ), - 'SS' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'StringAttributeValue', - 'type' => 'string', - ), - ), - 'NS' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'NumberAttributeValue', - 'type' => 'string', - ), - ), - 'BS' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'BinaryAttributeValue', - 'type' => 'string', - 'filters' => array( - 'base64_encode', - ), - ), - ), - ), - ), - ), - ), - ), - ), - ), - ), - ), - 'ReturnConsumedCapacity' => array( - 'type' => 'string', - 'location' => 'json', - 'enum' => array( - 'TOTAL', - 'NONE', - ), - ), - 'ReturnItemCollectionMetrics' => array( - 'type' => 'string', - 'location' => 'json', - 'enum' => array( - 'SIZE', - 'NONE', - ), - ), ), - 'errorResponses' => array( - array( - 'reason' => 'The request rate is too high, or the request is too large, for the available throughput to accommodate. The AWS SDKs automatically retry requests that receive this exception; therefore, your request will eventually succeed, unless the request is too large or your retry queue is too large to finish. Reduce the frequency of requests by using the strategies listed in Error Retries and Exponential Backoff in the Amazon DynamoDB Developer Guide.', - 'class' => 'ProvisionedThroughputExceededException', - ), - array( - 'reason' => 'The operation tried to access a nonexistent table or index. The resource may not be specified correctly, or its status may not be ACTIVE.', - 'class' => 'ResourceNotFoundException', - ), - array( - 'reason' => 'An item collection is too large. This exception is only returned for tables that have one or more local secondary indexes.', - 'class' => 'ItemCollectionSizeLimitExceededException', - ), - array( - 'reason' => 'An error occurred on the server side.', - 'class' => 'InternalServerErrorException', + 'additionalParameters' => array( + 'location' => 'json', + 'filters' => array( + 'Aws\DynamoDb\DynamoDbCommand::marshalAttributes', ), ), ), 'CreateTable' => array( 'httpMethod' => 'POST', 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'CreateTableOutput', + 'class' => 'Aws\\DynamoDb\\DynamoDbCommand', + 'responseClass' => 'JsonOutput', 'responseType' => 'model', 'parameters' => array( 'Content-Type' => array( @@ -401,171 +156,16 @@ return array ( 'location' => 'header', 'default' => 'DynamoDB_20120810.CreateTable', ), - 'AttributeDefinitions' => array( - 'required' => true, - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'AttributeDefinition', - 'type' => 'object', - 'properties' => array( - 'AttributeName' => array( - 'required' => true, - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 255, - ), - 'AttributeType' => array( - 'required' => true, - 'type' => 'string', - 'enum' => array( - 'S', - 'N', - 'B', - ), - ), - ), - ), - ), - 'TableName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - 'minLength' => 3, - 'maxLength' => 255, - ), - 'KeySchema' => array( - 'required' => true, - 'type' => 'array', - 'location' => 'json', - 'minItems' => 1, - 'maxItems' => 2, - 'items' => array( - 'name' => 'KeySchemaElement', - 'type' => 'object', - 'properties' => array( - 'AttributeName' => array( - 'required' => true, - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 255, - ), - 'KeyType' => array( - 'required' => true, - 'type' => 'string', - 'enum' => array( - 'HASH', - 'RANGE', - ), - ), - ), - ), - ), - 'LocalSecondaryIndexes' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'LocalSecondaryIndex', - 'type' => 'object', - 'properties' => array( - 'IndexName' => array( - 'required' => true, - 'type' => 'string', - 'minLength' => 3, - 'maxLength' => 255, - ), - 'KeySchema' => array( - 'required' => true, - 'type' => 'array', - 'minItems' => 1, - 'maxItems' => 2, - 'items' => array( - 'name' => 'KeySchemaElement', - 'type' => 'object', - 'properties' => array( - 'AttributeName' => array( - 'required' => true, - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 255, - ), - 'KeyType' => array( - 'required' => true, - 'type' => 'string', - 'enum' => array( - 'HASH', - 'RANGE', - ), - ), - ), - ), - ), - 'Projection' => array( - 'required' => true, - 'type' => 'object', - 'properties' => array( - 'ProjectionType' => array( - 'type' => 'string', - 'enum' => array( - 'ALL', - 'KEYS_ONLY', - 'INCLUDE', - ), - ), - 'NonKeyAttributes' => array( - 'type' => 'array', - 'minItems' => 1, - 'maxItems' => 20, - 'items' => array( - 'name' => 'NonKeyAttributeName', - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 255, - ), - ), - ), - ), - ), - ), - ), - 'ProvisionedThroughput' => array( - 'required' => true, - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'ReadCapacityUnits' => array( - 'required' => true, - 'type' => 'numeric', - 'minimum' => 1, - ), - 'WriteCapacityUnits' => array( - 'required' => true, - 'type' => 'numeric', - 'minimum' => 1, - ), - ), - ), ), - 'errorResponses' => array( - array( - 'reason' => 'The operation conflicts with the resource\'s availability. For example, you attempted to recreate an existing table, or tried to delete a table currently in the CREATING state.', - 'class' => 'ResourceInUseException', - ), - array( - 'reason' => 'The number of concurrent table requests (cumulative number of tables in the CREATING, DELETING or UPDATING state) exceeds the maximum allowed of 10. Also, for tables with a local secondary indexes, only one of those tables can be in the CREATING state at any point in time. Do not attempt to create more than one such table simultaneously. The total limit of tables in the ACTIVE state is 250.', - 'class' => 'LimitExceededException', - ), - array( - 'reason' => 'An error occurred on the server side.', - 'class' => 'InternalServerErrorException', - ), + 'additionalParameters' => array( + 'location' => 'json', ), ), 'DeleteItem' => array( 'httpMethod' => 'POST', 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'DeleteItemOutput', + 'class' => 'Aws\\DynamoDb\\DynamoDbCommand', + 'responseClass' => 'JsonOutput', 'responseType' => 'model', 'parameters' => array( 'Content-Type' => array( @@ -582,175 +182,19 @@ return array ( 'location' => 'header', 'default' => 'DynamoDB_20120810.DeleteItem', ), - 'TableName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - 'minLength' => 3, - 'maxLength' => 255, - ), - 'Key' => array( - 'required' => true, - 'type' => 'object', - 'location' => 'json', - 'additionalProperties' => array( - 'type' => 'object', - 'data' => array( - 'shape_name' => 'AttributeName', - ), - 'properties' => array( - 'S' => array( - 'type' => 'string', - ), - 'N' => array( - 'type' => 'string', - ), - 'B' => array( - 'type' => 'string', - 'filters' => array( - 'base64_encode', - ), - ), - 'SS' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'StringAttributeValue', - 'type' => 'string', - ), - ), - 'NS' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'NumberAttributeValue', - 'type' => 'string', - ), - ), - 'BS' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'BinaryAttributeValue', - 'type' => 'string', - 'filters' => array( - 'base64_encode', - ), - ), - ), - ), - ), - ), - 'Expected' => array( - 'type' => 'object', - 'location' => 'json', - 'additionalProperties' => array( - 'type' => 'object', - 'data' => array( - 'shape_name' => 'AttributeName', - ), - 'properties' => array( - 'Value' => array( - 'type' => 'object', - 'properties' => array( - 'S' => array( - 'type' => 'string', - ), - 'N' => array( - 'type' => 'string', - ), - 'B' => array( - 'type' => 'string', - 'filters' => array( - 'base64_encode', - ), - ), - 'SS' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'StringAttributeValue', - 'type' => 'string', - ), - ), - 'NS' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'NumberAttributeValue', - 'type' => 'string', - ), - ), - 'BS' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'BinaryAttributeValue', - 'type' => 'string', - 'filters' => array( - 'base64_encode', - ), - ), - ), - ), - ), - 'Exists' => array( - 'type' => 'boolean', - 'format' => 'boolean-string', - ), - ), - ), - ), - 'ReturnValues' => array( - 'type' => 'string', - 'location' => 'json', - 'enum' => array( - 'NONE', - 'ALL_OLD', - 'UPDATED_OLD', - 'ALL_NEW', - 'UPDATED_NEW', - ), - ), - 'ReturnConsumedCapacity' => array( - 'type' => 'string', - 'location' => 'json', - 'enum' => array( - 'TOTAL', - 'NONE', - ), - ), - 'ReturnItemCollectionMetrics' => array( - 'type' => 'string', - 'location' => 'json', - 'enum' => array( - 'SIZE', - 'NONE', - ), - ), ), - 'errorResponses' => array( - array( - 'reason' => 'A condition specified in the operation could not be evaluated.', - 'class' => 'ConditionalCheckFailedException', - ), - array( - 'reason' => 'The request rate is too high, or the request is too large, for the available throughput to accommodate. The AWS SDKs automatically retry requests that receive this exception; therefore, your request will eventually succeed, unless the request is too large or your retry queue is too large to finish. Reduce the frequency of requests by using the strategies listed in Error Retries and Exponential Backoff in the Amazon DynamoDB Developer Guide.', - 'class' => 'ProvisionedThroughputExceededException', - ), - array( - 'reason' => 'The operation tried to access a nonexistent table or index. The resource may not be specified correctly, or its status may not be ACTIVE.', - 'class' => 'ResourceNotFoundException', - ), - array( - 'reason' => 'An item collection is too large. This exception is only returned for tables that have one or more local secondary indexes.', - 'class' => 'ItemCollectionSizeLimitExceededException', - ), - array( - 'reason' => 'An error occurred on the server side.', - 'class' => 'InternalServerErrorException', + 'additionalParameters' => array( + 'location' => 'json', + 'filters' => array( + 'Aws\DynamoDb\DynamoDbCommand::marshalAttributes', ), ), ), 'DeleteTable' => array( 'httpMethod' => 'POST', 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'DeleteTableOutput', + 'class' => 'Aws\\DynamoDb\\DynamoDbCommand', + 'responseClass' => 'JsonOutput', 'responseType' => 'model', 'parameters' => array( 'Content-Type' => array( @@ -767,38 +211,16 @@ return array ( 'location' => 'header', 'default' => 'DynamoDB_20120810.DeleteTable', ), - 'TableName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - 'minLength' => 3, - 'maxLength' => 255, - ), ), - 'errorResponses' => array( - array( - 'reason' => 'The operation conflicts with the resource\'s availability. For example, you attempted to recreate an existing table, or tried to delete a table currently in the CREATING state.', - 'class' => 'ResourceInUseException', - ), - array( - 'reason' => 'The operation tried to access a nonexistent table or index. The resource may not be specified correctly, or its status may not be ACTIVE.', - 'class' => 'ResourceNotFoundException', - ), - array( - 'reason' => 'The number of concurrent table requests (cumulative number of tables in the CREATING, DELETING or UPDATING state) exceeds the maximum allowed of 10. Also, for tables with a local secondary indexes, only one of those tables can be in the CREATING state at any point in time. Do not attempt to create more than one such table simultaneously. The total limit of tables in the ACTIVE state is 250.', - 'class' => 'LimitExceededException', - ), - array( - 'reason' => 'An error occurred on the server side.', - 'class' => 'InternalServerErrorException', - ), + 'additionalParameters' => array( + 'location' => 'json', ), ), 'DescribeTable' => array( 'httpMethod' => 'POST', 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'DescribeTableOutput', + 'class' => 'Aws\\DynamoDb\\DynamoDbCommand', + 'responseClass' => 'JsonOutput', 'responseType' => 'model', 'parameters' => array( 'Content-Type' => array( @@ -815,30 +237,16 @@ return array ( 'location' => 'header', 'default' => 'DynamoDB_20120810.DescribeTable', ), - 'TableName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - 'minLength' => 3, - 'maxLength' => 255, - ), ), - 'errorResponses' => array( - array( - 'reason' => 'The operation tried to access a nonexistent table or index. The resource may not be specified correctly, or its status may not be ACTIVE.', - 'class' => 'ResourceNotFoundException', - ), - array( - 'reason' => 'An error occurred on the server side.', - 'class' => 'InternalServerErrorException', - ), + 'additionalParameters' => array( + 'location' => 'json', ), ), 'GetItem' => array( 'httpMethod' => 'POST', 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'GetItemOutput', + 'class' => 'Aws\\DynamoDb\\DynamoDbCommand', + 'responseClass' => 'JsonOutput', 'responseType' => 'model', 'parameters' => array( 'Content-Type' => array( @@ -855,105 +263,19 @@ return array ( 'location' => 'header', 'default' => 'DynamoDB_20120810.GetItem', ), - 'TableName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - 'minLength' => 3, - 'maxLength' => 255, - ), - 'Key' => array( - 'required' => true, - 'type' => 'object', - 'location' => 'json', - 'additionalProperties' => array( - 'type' => 'object', - 'data' => array( - 'shape_name' => 'AttributeName', - ), - 'properties' => array( - 'S' => array( - 'type' => 'string', - ), - 'N' => array( - 'type' => 'string', - ), - 'B' => array( - 'type' => 'string', - 'filters' => array( - 'base64_encode', - ), - ), - 'SS' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'StringAttributeValue', - 'type' => 'string', - ), - ), - 'NS' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'NumberAttributeValue', - 'type' => 'string', - ), - ), - 'BS' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'BinaryAttributeValue', - 'type' => 'string', - 'filters' => array( - 'base64_encode', - ), - ), - ), - ), - ), - ), - 'AttributesToGet' => array( - 'type' => 'array', - 'location' => 'json', - 'minItems' => 1, - 'items' => array( - 'name' => 'AttributeName', - 'type' => 'string', - ), - ), - 'ConsistentRead' => array( - 'type' => 'boolean', - 'format' => 'boolean-string', - 'location' => 'json', - ), - 'ReturnConsumedCapacity' => array( - 'type' => 'string', - 'location' => 'json', - 'enum' => array( - 'TOTAL', - 'NONE', - ), - ), ), - 'errorResponses' => array( - array( - 'reason' => 'The request rate is too high, or the request is too large, for the available throughput to accommodate. The AWS SDKs automatically retry requests that receive this exception; therefore, your request will eventually succeed, unless the request is too large or your retry queue is too large to finish. Reduce the frequency of requests by using the strategies listed in Error Retries and Exponential Backoff in the Amazon DynamoDB Developer Guide.', - 'class' => 'ProvisionedThroughputExceededException', - ), - array( - 'reason' => 'The operation tried to access a nonexistent table or index. The resource may not be specified correctly, or its status may not be ACTIVE.', - 'class' => 'ResourceNotFoundException', - ), - array( - 'reason' => 'An error occurred on the server side.', - 'class' => 'InternalServerErrorException', + 'additionalParameters' => array( + 'location' => 'json', + 'filters' => array( + 'Aws\DynamoDb\DynamoDbCommand::marshalAttributes', ), ), ), 'ListTables' => array( 'httpMethod' => 'POST', 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'ListTablesOutput', + 'class' => 'Aws\\DynamoDb\\DynamoDbCommand', + 'responseClass' => 'JsonOutput', 'responseType' => 'model', 'parameters' => array( 'Content-Type' => array( @@ -970,31 +292,16 @@ return array ( 'location' => 'header', 'default' => 'DynamoDB_20120810.ListTables', ), - 'ExclusiveStartTableName' => array( - 'type' => 'string', - 'location' => 'json', - 'minLength' => 3, - 'maxLength' => 255, - ), - 'Limit' => array( - 'type' => 'numeric', - 'location' => 'json', - 'minimum' => 1, - 'maximum' => 100, - ), ), - 'errorResponses' => array( - array( - 'reason' => 'An error occurred on the server side.', - 'class' => 'InternalServerErrorException', - ), + 'additionalParameters' => array( + 'location' => 'json', ), ), 'PutItem' => array( 'httpMethod' => 'POST', 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'PutItemOutput', + 'class' => 'Aws\\DynamoDb\\DynamoDbCommand', + 'responseClass' => 'JsonOutput', 'responseType' => 'model', 'parameters' => array( 'Content-Type' => array( @@ -1011,175 +318,19 @@ return array ( 'location' => 'header', 'default' => 'DynamoDB_20120810.PutItem', ), - 'TableName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - 'minLength' => 3, - 'maxLength' => 255, - ), - 'Item' => array( - 'required' => true, - 'type' => 'object', - 'location' => 'json', - 'additionalProperties' => array( - 'type' => 'object', - 'data' => array( - 'shape_name' => 'AttributeName', - ), - 'properties' => array( - 'S' => array( - 'type' => 'string', - ), - 'N' => array( - 'type' => 'string', - ), - 'B' => array( - 'type' => 'string', - 'filters' => array( - 'base64_encode', - ), - ), - 'SS' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'StringAttributeValue', - 'type' => 'string', - ), - ), - 'NS' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'NumberAttributeValue', - 'type' => 'string', - ), - ), - 'BS' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'BinaryAttributeValue', - 'type' => 'string', - 'filters' => array( - 'base64_encode', - ), - ), - ), - ), - ), - ), - 'Expected' => array( - 'type' => 'object', - 'location' => 'json', - 'additionalProperties' => array( - 'type' => 'object', - 'data' => array( - 'shape_name' => 'AttributeName', - ), - 'properties' => array( - 'Value' => array( - 'type' => 'object', - 'properties' => array( - 'S' => array( - 'type' => 'string', - ), - 'N' => array( - 'type' => 'string', - ), - 'B' => array( - 'type' => 'string', - 'filters' => array( - 'base64_encode', - ), - ), - 'SS' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'StringAttributeValue', - 'type' => 'string', - ), - ), - 'NS' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'NumberAttributeValue', - 'type' => 'string', - ), - ), - 'BS' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'BinaryAttributeValue', - 'type' => 'string', - 'filters' => array( - 'base64_encode', - ), - ), - ), - ), - ), - 'Exists' => array( - 'type' => 'boolean', - 'format' => 'boolean-string', - ), - ), - ), - ), - 'ReturnValues' => array( - 'type' => 'string', - 'location' => 'json', - 'enum' => array( - 'NONE', - 'ALL_OLD', - 'UPDATED_OLD', - 'ALL_NEW', - 'UPDATED_NEW', - ), - ), - 'ReturnConsumedCapacity' => array( - 'type' => 'string', - 'location' => 'json', - 'enum' => array( - 'TOTAL', - 'NONE', - ), - ), - 'ReturnItemCollectionMetrics' => array( - 'type' => 'string', - 'location' => 'json', - 'enum' => array( - 'SIZE', - 'NONE', - ), - ), ), - 'errorResponses' => array( - array( - 'reason' => 'A condition specified in the operation could not be evaluated.', - 'class' => 'ConditionalCheckFailedException', - ), - array( - 'reason' => 'The request rate is too high, or the request is too large, for the available throughput to accommodate. The AWS SDKs automatically retry requests that receive this exception; therefore, your request will eventually succeed, unless the request is too large or your retry queue is too large to finish. Reduce the frequency of requests by using the strategies listed in Error Retries and Exponential Backoff in the Amazon DynamoDB Developer Guide.', - 'class' => 'ProvisionedThroughputExceededException', - ), - array( - 'reason' => 'The operation tried to access a nonexistent table or index. The resource may not be specified correctly, or its status may not be ACTIVE.', - 'class' => 'ResourceNotFoundException', - ), - array( - 'reason' => 'An item collection is too large. This exception is only returned for tables that have one or more local secondary indexes.', - 'class' => 'ItemCollectionSizeLimitExceededException', - ), - array( - 'reason' => 'An error occurred on the server side.', - 'class' => 'InternalServerErrorException', + 'additionalParameters' => array( + 'location' => 'json', + 'filters' => array( + 'Aws\DynamoDb\DynamoDbCommand::marshalAttributes', ), ), ), 'Query' => array( 'httpMethod' => 'POST', 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'QueryOutput', + 'class' => 'Aws\\DynamoDb\\DynamoDbCommand', + 'responseClass' => 'JsonOutput', 'responseType' => 'model', 'parameters' => array( 'Content-Type' => array( @@ -1196,206 +347,19 @@ return array ( 'location' => 'header', 'default' => 'DynamoDB_20120810.Query', ), - 'TableName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - 'minLength' => 3, - 'maxLength' => 255, - ), - 'IndexName' => array( - 'type' => 'string', - 'location' => 'json', - 'minLength' => 3, - 'maxLength' => 255, - ), - 'Select' => array( - 'type' => 'string', - 'location' => 'json', - 'enum' => array( - 'ALL_ATTRIBUTES', - 'ALL_PROJECTED_ATTRIBUTES', - 'SPECIFIC_ATTRIBUTES', - 'COUNT', - ), - ), - 'AttributesToGet' => array( - 'type' => 'array', - 'location' => 'json', - 'minItems' => 1, - 'items' => array( - 'name' => 'AttributeName', - 'type' => 'string', - ), - ), - 'Limit' => array( - 'type' => 'numeric', - 'location' => 'json', - 'minimum' => 1, - ), - 'ConsistentRead' => array( - 'type' => 'boolean', - 'format' => 'boolean-string', - 'location' => 'json', - ), - 'KeyConditions' => array( - 'type' => 'object', - 'location' => 'json', - 'additionalProperties' => array( - 'type' => 'object', - 'data' => array( - 'shape_name' => 'AttributeName', - ), - 'properties' => array( - 'AttributeValueList' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'AttributeValue', - 'type' => 'object', - 'properties' => array( - 'S' => array( - 'type' => 'string', - ), - 'N' => array( - 'type' => 'string', - ), - 'B' => array( - 'type' => 'string', - 'filters' => array( - 'base64_encode', - ), - ), - 'SS' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'StringAttributeValue', - 'type' => 'string', - ), - ), - 'NS' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'NumberAttributeValue', - 'type' => 'string', - ), - ), - 'BS' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'BinaryAttributeValue', - 'type' => 'string', - 'filters' => array( - 'base64_encode', - ), - ), - ), - ), - ), - ), - 'ComparisonOperator' => array( - 'required' => true, - 'type' => 'string', - 'enum' => array( - 'EQ', - 'NE', - 'IN', - 'LE', - 'LT', - 'GE', - 'GT', - 'BETWEEN', - 'NOT_NULL', - 'NULL', - 'CONTAINS', - 'NOT_CONTAINS', - 'BEGINS_WITH', - ), - ), - ), - ), - ), - 'ScanIndexForward' => array( - 'type' => 'boolean', - 'format' => 'boolean-string', - 'location' => 'json', - ), - 'ExclusiveStartKey' => array( - 'type' => 'object', - 'location' => 'json', - 'additionalProperties' => array( - 'type' => 'object', - 'data' => array( - 'shape_name' => 'AttributeName', - ), - 'properties' => array( - 'S' => array( - 'type' => 'string', - ), - 'N' => array( - 'type' => 'string', - ), - 'B' => array( - 'type' => 'string', - 'filters' => array( - 'base64_encode', - ), - ), - 'SS' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'StringAttributeValue', - 'type' => 'string', - ), - ), - 'NS' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'NumberAttributeValue', - 'type' => 'string', - ), - ), - 'BS' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'BinaryAttributeValue', - 'type' => 'string', - 'filters' => array( - 'base64_encode', - ), - ), - ), - ), - ), - ), - 'ReturnConsumedCapacity' => array( - 'type' => 'string', - 'location' => 'json', - 'enum' => array( - 'TOTAL', - 'NONE', - ), - ), ), - 'errorResponses' => array( - array( - 'reason' => 'The request rate is too high, or the request is too large, for the available throughput to accommodate. The AWS SDKs automatically retry requests that receive this exception; therefore, your request will eventually succeed, unless the request is too large or your retry queue is too large to finish. Reduce the frequency of requests by using the strategies listed in Error Retries and Exponential Backoff in the Amazon DynamoDB Developer Guide.', - 'class' => 'ProvisionedThroughputExceededException', - ), - array( - 'reason' => 'The operation tried to access a nonexistent table or index. The resource may not be specified correctly, or its status may not be ACTIVE.', - 'class' => 'ResourceNotFoundException', - ), - array( - 'reason' => 'An error occurred on the server side.', - 'class' => 'InternalServerErrorException', + 'additionalParameters' => array( + 'location' => 'json', + 'filters' => array( + 'Aws\DynamoDb\DynamoDbCommand::marshalAttributes', ), ), ), 'Scan' => array( 'httpMethod' => 'POST', 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'ScanOutput', + 'class' => 'Aws\\DynamoDb\\DynamoDbCommand', + 'responseClass' => 'JsonOutput', 'responseType' => 'model', 'parameters' => array( 'Content-Type' => array( @@ -1412,201 +376,19 @@ return array ( 'location' => 'header', 'default' => 'DynamoDB_20120810.Scan', ), - 'TableName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - 'minLength' => 3, - 'maxLength' => 255, - ), - 'AttributesToGet' => array( - 'type' => 'array', - 'location' => 'json', - 'minItems' => 1, - 'items' => array( - 'name' => 'AttributeName', - 'type' => 'string', - ), - ), - 'Limit' => array( - 'type' => 'numeric', - 'location' => 'json', - 'minimum' => 1, - ), - 'Select' => array( - 'type' => 'string', - 'location' => 'json', - 'enum' => array( - 'ALL_ATTRIBUTES', - 'ALL_PROJECTED_ATTRIBUTES', - 'SPECIFIC_ATTRIBUTES', - 'COUNT', - ), - ), - 'ScanFilter' => array( - 'type' => 'object', - 'location' => 'json', - 'additionalProperties' => array( - 'type' => 'object', - 'data' => array( - 'shape_name' => 'AttributeName', - ), - 'properties' => array( - 'AttributeValueList' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'AttributeValue', - 'type' => 'object', - 'properties' => array( - 'S' => array( - 'type' => 'string', - ), - 'N' => array( - 'type' => 'string', - ), - 'B' => array( - 'type' => 'string', - 'filters' => array( - 'base64_encode', - ), - ), - 'SS' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'StringAttributeValue', - 'type' => 'string', - ), - ), - 'NS' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'NumberAttributeValue', - 'type' => 'string', - ), - ), - 'BS' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'BinaryAttributeValue', - 'type' => 'string', - 'filters' => array( - 'base64_encode', - ), - ), - ), - ), - ), - ), - 'ComparisonOperator' => array( - 'required' => true, - 'type' => 'string', - 'enum' => array( - 'EQ', - 'NE', - 'IN', - 'LE', - 'LT', - 'GE', - 'GT', - 'BETWEEN', - 'NOT_NULL', - 'NULL', - 'CONTAINS', - 'NOT_CONTAINS', - 'BEGINS_WITH', - ), - ), - ), - ), - ), - 'ExclusiveStartKey' => array( - 'type' => 'object', - 'location' => 'json', - 'additionalProperties' => array( - 'type' => 'object', - 'data' => array( - 'shape_name' => 'AttributeName', - ), - 'properties' => array( - 'S' => array( - 'type' => 'string', - ), - 'N' => array( - 'type' => 'string', - ), - 'B' => array( - 'type' => 'string', - 'filters' => array( - 'base64_encode', - ), - ), - 'SS' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'StringAttributeValue', - 'type' => 'string', - ), - ), - 'NS' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'NumberAttributeValue', - 'type' => 'string', - ), - ), - 'BS' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'BinaryAttributeValue', - 'type' => 'string', - 'filters' => array( - 'base64_encode', - ), - ), - ), - ), - ), - ), - 'ReturnConsumedCapacity' => array( - 'type' => 'string', - 'location' => 'json', - 'enum' => array( - 'TOTAL', - 'NONE', - ), - ), - 'TotalSegments' => array( - 'type' => 'numeric', - 'location' => 'json', - 'minimum' => 1, - 'maximum' => 4096, - ), - 'Segment' => array( - 'type' => 'numeric', - 'location' => 'json', - 'maximum' => 4095, - ), ), - 'errorResponses' => array( - array( - 'reason' => 'The request rate is too high, or the request is too large, for the available throughput to accommodate. The AWS SDKs automatically retry requests that receive this exception; therefore, your request will eventually succeed, unless the request is too large or your retry queue is too large to finish. Reduce the frequency of requests by using the strategies listed in Error Retries and Exponential Backoff in the Amazon DynamoDB Developer Guide.', - 'class' => 'ProvisionedThroughputExceededException', - ), - array( - 'reason' => 'The operation tried to access a nonexistent table or index. The resource may not be specified correctly, or its status may not be ACTIVE.', - 'class' => 'ResourceNotFoundException', - ), - array( - 'reason' => 'An error occurred on the server side.', - 'class' => 'InternalServerErrorException', + 'additionalParameters' => array( + 'location' => 'json', + 'filters' => array( + 'Aws\DynamoDb\DynamoDbCommand::marshalAttributes', ), ), ), 'UpdateItem' => array( 'httpMethod' => 'POST', 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'UpdateItemOutput', + 'class' => 'Aws\\DynamoDb\\DynamoDbCommand', + 'responseClass' => 'JsonOutput', 'responseType' => 'model', 'parameters' => array( 'Content-Type' => array( @@ -1623,236 +405,19 @@ return array ( 'location' => 'header', 'default' => 'DynamoDB_20120810.UpdateItem', ), - 'TableName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - 'minLength' => 3, - 'maxLength' => 255, - ), - 'Key' => array( - 'required' => true, - 'type' => 'object', - 'location' => 'json', - 'additionalProperties' => array( - 'type' => 'object', - 'data' => array( - 'shape_name' => 'AttributeName', - ), - 'properties' => array( - 'S' => array( - 'type' => 'string', - ), - 'N' => array( - 'type' => 'string', - ), - 'B' => array( - 'type' => 'string', - 'filters' => array( - 'base64_encode', - ), - ), - 'SS' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'StringAttributeValue', - 'type' => 'string', - ), - ), - 'NS' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'NumberAttributeValue', - 'type' => 'string', - ), - ), - 'BS' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'BinaryAttributeValue', - 'type' => 'string', - 'filters' => array( - 'base64_encode', - ), - ), - ), - ), - ), - ), - 'AttributeUpdates' => array( - 'type' => 'object', - 'location' => 'json', - 'additionalProperties' => array( - 'type' => 'object', - 'data' => array( - 'shape_name' => 'AttributeName', - ), - 'properties' => array( - 'Value' => array( - 'type' => 'object', - 'properties' => array( - 'S' => array( - 'type' => 'string', - ), - 'N' => array( - 'type' => 'string', - ), - 'B' => array( - 'type' => 'string', - 'filters' => array( - 'base64_encode', - ), - ), - 'SS' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'StringAttributeValue', - 'type' => 'string', - ), - ), - 'NS' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'NumberAttributeValue', - 'type' => 'string', - ), - ), - 'BS' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'BinaryAttributeValue', - 'type' => 'string', - 'filters' => array( - 'base64_encode', - ), - ), - ), - ), - ), - 'Action' => array( - 'type' => 'string', - 'enum' => array( - 'ADD', - 'PUT', - 'DELETE', - ), - ), - ), - ), - ), - 'Expected' => array( - 'type' => 'object', - 'location' => 'json', - 'additionalProperties' => array( - 'type' => 'object', - 'data' => array( - 'shape_name' => 'AttributeName', - ), - 'properties' => array( - 'Value' => array( - 'type' => 'object', - 'properties' => array( - 'S' => array( - 'type' => 'string', - ), - 'N' => array( - 'type' => 'string', - ), - 'B' => array( - 'type' => 'string', - 'filters' => array( - 'base64_encode', - ), - ), - 'SS' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'StringAttributeValue', - 'type' => 'string', - ), - ), - 'NS' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'NumberAttributeValue', - 'type' => 'string', - ), - ), - 'BS' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'BinaryAttributeValue', - 'type' => 'string', - 'filters' => array( - 'base64_encode', - ), - ), - ), - ), - ), - 'Exists' => array( - 'type' => 'boolean', - 'format' => 'boolean-string', - ), - ), - ), - ), - 'ReturnValues' => array( - 'type' => 'string', - 'location' => 'json', - 'enum' => array( - 'NONE', - 'ALL_OLD', - 'UPDATED_OLD', - 'ALL_NEW', - 'UPDATED_NEW', - ), - ), - 'ReturnConsumedCapacity' => array( - 'type' => 'string', - 'location' => 'json', - 'enum' => array( - 'TOTAL', - 'NONE', - ), - ), - 'ReturnItemCollectionMetrics' => array( - 'type' => 'string', - 'location' => 'json', - 'enum' => array( - 'SIZE', - 'NONE', - ), - ), ), - 'errorResponses' => array( - array( - 'reason' => 'A condition specified in the operation could not be evaluated.', - 'class' => 'ConditionalCheckFailedException', - ), - array( - 'reason' => 'The request rate is too high, or the request is too large, for the available throughput to accommodate. The AWS SDKs automatically retry requests that receive this exception; therefore, your request will eventually succeed, unless the request is too large or your retry queue is too large to finish. Reduce the frequency of requests by using the strategies listed in Error Retries and Exponential Backoff in the Amazon DynamoDB Developer Guide.', - 'class' => 'ProvisionedThroughputExceededException', - ), - array( - 'reason' => 'The operation tried to access a nonexistent table or index. The resource may not be specified correctly, or its status may not be ACTIVE.', - 'class' => 'ResourceNotFoundException', - ), - array( - 'reason' => 'An item collection is too large. This exception is only returned for tables that have one or more local secondary indexes.', - 'class' => 'ItemCollectionSizeLimitExceededException', - ), - array( - 'reason' => 'An error occurred on the server side.', - 'class' => 'InternalServerErrorException', + 'additionalParameters' => array( + 'location' => 'json', + 'filters' => array( + 'Aws\DynamoDb\DynamoDbCommand::marshalAttributes', ), ), ), 'UpdateTable' => array( 'httpMethod' => 'POST', 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'UpdateTableOutput', + 'class' => 'Aws\\DynamoDb\\DynamoDbCommand', + 'responseClass' => 'JsonOutput', 'responseType' => 'model', 'parameters' => array( 'Content-Type' => array( @@ -1869,1470 +434,43 @@ return array ( 'location' => 'header', 'default' => 'DynamoDB_20120810.UpdateTable', ), - 'TableName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - 'minLength' => 3, - 'maxLength' => 255, - ), - 'ProvisionedThroughput' => array( - 'required' => true, - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'ReadCapacityUnits' => array( - 'required' => true, - 'type' => 'numeric', - 'minimum' => 1, - ), - 'WriteCapacityUnits' => array( - 'required' => true, - 'type' => 'numeric', - 'minimum' => 1, - ), - ), - ), ), - 'errorResponses' => array( - array( - 'reason' => 'The operation conflicts with the resource\'s availability. For example, you attempted to recreate an existing table, or tried to delete a table currently in the CREATING state.', - 'class' => 'ResourceInUseException', - ), - array( - 'reason' => 'The operation tried to access a nonexistent table or index. The resource may not be specified correctly, or its status may not be ACTIVE.', - 'class' => 'ResourceNotFoundException', - ), - array( - 'reason' => 'The number of concurrent table requests (cumulative number of tables in the CREATING, DELETING or UPDATING state) exceeds the maximum allowed of 10. Also, for tables with a local secondary indexes, only one of those tables can be in the CREATING state at any point in time. Do not attempt to create more than one such table simultaneously. The total limit of tables in the ACTIVE state is 250.', - 'class' => 'LimitExceededException', - ), - array( - 'reason' => 'An error occurred on the server side.', - 'class' => 'InternalServerErrorException', - ), + 'additionalParameters' => array( + 'location' => 'json', ), ), ), 'models' => array( - 'BatchGetItemOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Responses' => array( - 'type' => 'object', - 'location' => 'json', - 'additionalProperties' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'AttributeMap', - 'type' => 'object', - 'additionalProperties' => array( - 'type' => 'object', - 'properties' => array( - 'S' => array( - 'type' => 'string', - ), - 'N' => array( - 'type' => 'string', - ), - 'B' => array( - 'type' => 'string', - ), - 'SS' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'StringAttributeValue', - 'type' => 'string', - ), - ), - 'NS' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'NumberAttributeValue', - 'type' => 'string', - ), - ), - 'BS' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'BinaryAttributeValue', - 'type' => 'string', - ), - ), - ), - ), - ), - ), - ), - 'UnprocessedKeys' => array( - 'type' => 'object', - 'location' => 'json', - 'additionalProperties' => array( - 'type' => 'object', - 'properties' => array( - 'Keys' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'Key', - 'type' => 'object', - 'additionalProperties' => array( - 'type' => 'object', - 'properties' => array( - 'S' => array( - 'type' => 'string', - ), - 'N' => array( - 'type' => 'string', - ), - 'B' => array( - 'type' => 'string', - ), - 'SS' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'StringAttributeValue', - 'type' => 'string', - ), - ), - 'NS' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'NumberAttributeValue', - 'type' => 'string', - ), - ), - 'BS' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'BinaryAttributeValue', - 'type' => 'string', - ), - ), - ), - ), - ), - ), - 'AttributesToGet' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'AttributeName', - 'type' => 'string', - ), - ), - 'ConsistentRead' => array( - 'type' => 'boolean', - ), - ), - ), - ), - 'ConsumedCapacity' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'ConsumedCapacity', - 'type' => 'object', - 'properties' => array( - 'TableName' => array( - 'type' => 'string', - ), - 'CapacityUnits' => array( - 'type' => 'numeric', - ), - ), - ), - ), - ), - ), - 'BatchWriteItemOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'UnprocessedItems' => array( - 'type' => 'object', - 'location' => 'json', - 'additionalProperties' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'WriteRequest', - 'type' => 'object', - 'properties' => array( - 'PutRequest' => array( - 'type' => 'object', - 'properties' => array( - 'Item' => array( - 'type' => 'object', - 'additionalProperties' => array( - 'type' => 'object', - 'properties' => array( - 'S' => array( - 'type' => 'string', - ), - 'N' => array( - 'type' => 'string', - ), - 'B' => array( - 'type' => 'string', - ), - 'SS' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'StringAttributeValue', - 'type' => 'string', - ), - ), - 'NS' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'NumberAttributeValue', - 'type' => 'string', - ), - ), - 'BS' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'BinaryAttributeValue', - 'type' => 'string', - ), - ), - ), - ), - ), - ), - ), - 'DeleteRequest' => array( - 'type' => 'object', - 'properties' => array( - 'Key' => array( - 'type' => 'object', - 'additionalProperties' => array( - 'type' => 'object', - 'properties' => array( - 'S' => array( - 'type' => 'string', - ), - 'N' => array( - 'type' => 'string', - ), - 'B' => array( - 'type' => 'string', - ), - 'SS' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'StringAttributeValue', - 'type' => 'string', - ), - ), - 'NS' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'NumberAttributeValue', - 'type' => 'string', - ), - ), - 'BS' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'BinaryAttributeValue', - 'type' => 'string', - ), - ), - ), - ), - ), - ), - ), - ), - ), - ), - ), - 'ItemCollectionMetrics' => array( - 'type' => 'object', - 'location' => 'json', - 'additionalProperties' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'ItemCollectionMetrics', - 'type' => 'object', - 'properties' => array( - 'ItemCollectionKey' => array( - 'type' => 'object', - 'additionalProperties' => array( - 'type' => 'object', - 'properties' => array( - 'S' => array( - 'type' => 'string', - ), - 'N' => array( - 'type' => 'string', - ), - 'B' => array( - 'type' => 'string', - ), - 'SS' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'StringAttributeValue', - 'type' => 'string', - ), - ), - 'NS' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'NumberAttributeValue', - 'type' => 'string', - ), - ), - 'BS' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'BinaryAttributeValue', - 'type' => 'string', - ), - ), - ), - ), - ), - 'SizeEstimateRangeGB' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'ItemCollectionSizeEstimateBound', - 'type' => 'numeric', - ), - ), - ), - ), - ), - ), - 'ConsumedCapacity' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'ConsumedCapacity', - 'type' => 'object', - 'properties' => array( - 'TableName' => array( - 'type' => 'string', - ), - 'CapacityUnits' => array( - 'type' => 'numeric', - ), - ), - ), - ), - ), - ), - 'CreateTableOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'TableDescription' => array( - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'AttributeDefinitions' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'AttributeDefinition', - 'type' => 'object', - 'properties' => array( - 'AttributeName' => array( - 'type' => 'string', - ), - 'AttributeType' => array( - 'type' => 'string', - ), - ), - ), - ), - 'TableName' => array( - 'type' => 'string', - ), - 'KeySchema' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'KeySchemaElement', - 'type' => 'object', - 'properties' => array( - 'AttributeName' => array( - 'type' => 'string', - ), - 'KeyType' => array( - 'type' => 'string', - ), - ), - ), - ), - 'TableStatus' => array( - 'type' => 'string', - ), - 'CreationDateTime' => array( - 'type' => 'string', - ), - 'ProvisionedThroughput' => array( - 'type' => 'object', - 'properties' => array( - 'LastIncreaseDateTime' => array( - 'type' => 'string', - ), - 'LastDecreaseDateTime' => array( - 'type' => 'string', - ), - 'NumberOfDecreasesToday' => array( - 'type' => 'numeric', - ), - 'ReadCapacityUnits' => array( - 'type' => 'numeric', - ), - 'WriteCapacityUnits' => array( - 'type' => 'numeric', - ), - ), - ), - 'TableSizeBytes' => array( - 'type' => 'numeric', - ), - 'ItemCount' => array( - 'type' => 'numeric', - ), - 'LocalSecondaryIndexes' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'LocalSecondaryIndexDescription', - 'type' => 'object', - 'properties' => array( - 'IndexName' => array( - 'type' => 'string', - ), - 'KeySchema' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'KeySchemaElement', - 'type' => 'object', - 'properties' => array( - 'AttributeName' => array( - 'type' => 'string', - ), - 'KeyType' => array( - 'type' => 'string', - ), - ), - ), - ), - 'Projection' => array( - 'type' => 'object', - 'properties' => array( - 'ProjectionType' => array( - 'type' => 'string', - ), - 'NonKeyAttributes' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'NonKeyAttributeName', - 'type' => 'string', - ), - ), - ), - ), - 'IndexSizeBytes' => array( - 'type' => 'numeric', - ), - 'ItemCount' => array( - 'type' => 'numeric', - ), - ), - ), - ), - ), - ), - ), - ), - 'DeleteItemOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Attributes' => array( - 'type' => 'object', - 'location' => 'json', - 'additionalProperties' => array( - 'type' => 'object', - 'properties' => array( - 'S' => array( - 'type' => 'string', - ), - 'N' => array( - 'type' => 'string', - ), - 'B' => array( - 'type' => 'string', - ), - 'SS' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'StringAttributeValue', - 'type' => 'string', - ), - ), - 'NS' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'NumberAttributeValue', - 'type' => 'string', - ), - ), - 'BS' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'BinaryAttributeValue', - 'type' => 'string', - ), - ), - ), - ), - ), - 'ConsumedCapacity' => array( - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'TableName' => array( - 'type' => 'string', - ), - 'CapacityUnits' => array( - 'type' => 'numeric', - ), - ), - ), - 'ItemCollectionMetrics' => array( - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'ItemCollectionKey' => array( - 'type' => 'object', - 'additionalProperties' => array( - 'type' => 'object', - 'properties' => array( - 'S' => array( - 'type' => 'string', - ), - 'N' => array( - 'type' => 'string', - ), - 'B' => array( - 'type' => 'string', - ), - 'SS' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'StringAttributeValue', - 'type' => 'string', - ), - ), - 'NS' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'NumberAttributeValue', - 'type' => 'string', - ), - ), - 'BS' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'BinaryAttributeValue', - 'type' => 'string', - ), - ), - ), - ), - ), - 'SizeEstimateRangeGB' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'ItemCollectionSizeEstimateBound', - 'type' => 'numeric', - ), - ), - ), - ), - ), - ), - 'DeleteTableOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'TableDescription' => array( - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'AttributeDefinitions' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'AttributeDefinition', - 'type' => 'object', - 'properties' => array( - 'AttributeName' => array( - 'type' => 'string', - ), - 'AttributeType' => array( - 'type' => 'string', - ), - ), - ), - ), - 'TableName' => array( - 'type' => 'string', - ), - 'KeySchema' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'KeySchemaElement', - 'type' => 'object', - 'properties' => array( - 'AttributeName' => array( - 'type' => 'string', - ), - 'KeyType' => array( - 'type' => 'string', - ), - ), - ), - ), - 'TableStatus' => array( - 'type' => 'string', - ), - 'CreationDateTime' => array( - 'type' => 'string', - ), - 'ProvisionedThroughput' => array( - 'type' => 'object', - 'properties' => array( - 'LastIncreaseDateTime' => array( - 'type' => 'string', - ), - 'LastDecreaseDateTime' => array( - 'type' => 'string', - ), - 'NumberOfDecreasesToday' => array( - 'type' => 'numeric', - ), - 'ReadCapacityUnits' => array( - 'type' => 'numeric', - ), - 'WriteCapacityUnits' => array( - 'type' => 'numeric', - ), - ), - ), - 'TableSizeBytes' => array( - 'type' => 'numeric', - ), - 'ItemCount' => array( - 'type' => 'numeric', - ), - 'LocalSecondaryIndexes' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'LocalSecondaryIndexDescription', - 'type' => 'object', - 'properties' => array( - 'IndexName' => array( - 'type' => 'string', - ), - 'KeySchema' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'KeySchemaElement', - 'type' => 'object', - 'properties' => array( - 'AttributeName' => array( - 'type' => 'string', - ), - 'KeyType' => array( - 'type' => 'string', - ), - ), - ), - ), - 'Projection' => array( - 'type' => 'object', - 'properties' => array( - 'ProjectionType' => array( - 'type' => 'string', - ), - 'NonKeyAttributes' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'NonKeyAttributeName', - 'type' => 'string', - ), - ), - ), - ), - 'IndexSizeBytes' => array( - 'type' => 'numeric', - ), - 'ItemCount' => array( - 'type' => 'numeric', - ), - ), - ), - ), - ), - ), - ), - ), - 'DescribeTableOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Table' => array( - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'AttributeDefinitions' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'AttributeDefinition', - 'type' => 'object', - 'properties' => array( - 'AttributeName' => array( - 'type' => 'string', - ), - 'AttributeType' => array( - 'type' => 'string', - ), - ), - ), - ), - 'TableName' => array( - 'type' => 'string', - ), - 'KeySchema' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'KeySchemaElement', - 'type' => 'object', - 'properties' => array( - 'AttributeName' => array( - 'type' => 'string', - ), - 'KeyType' => array( - 'type' => 'string', - ), - ), - ), - ), - 'TableStatus' => array( - 'type' => 'string', - ), - 'CreationDateTime' => array( - 'type' => 'string', - ), - 'ProvisionedThroughput' => array( - 'type' => 'object', - 'properties' => array( - 'LastIncreaseDateTime' => array( - 'type' => 'string', - ), - 'LastDecreaseDateTime' => array( - 'type' => 'string', - ), - 'NumberOfDecreasesToday' => array( - 'type' => 'numeric', - ), - 'ReadCapacityUnits' => array( - 'type' => 'numeric', - ), - 'WriteCapacityUnits' => array( - 'type' => 'numeric', - ), - ), - ), - 'TableSizeBytes' => array( - 'type' => 'numeric', - ), - 'ItemCount' => array( - 'type' => 'numeric', - ), - 'LocalSecondaryIndexes' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'LocalSecondaryIndexDescription', - 'type' => 'object', - 'properties' => array( - 'IndexName' => array( - 'type' => 'string', - ), - 'KeySchema' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'KeySchemaElement', - 'type' => 'object', - 'properties' => array( - 'AttributeName' => array( - 'type' => 'string', - ), - 'KeyType' => array( - 'type' => 'string', - ), - ), - ), - ), - 'Projection' => array( - 'type' => 'object', - 'properties' => array( - 'ProjectionType' => array( - 'type' => 'string', - ), - 'NonKeyAttributes' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'NonKeyAttributeName', - 'type' => 'string', - ), - ), - ), - ), - 'IndexSizeBytes' => array( - 'type' => 'numeric', - ), - 'ItemCount' => array( - 'type' => 'numeric', - ), - ), - ), - ), - ), - ), - ), - ), - 'GetItemOutput' => array( + 'JsonOutput' => array( 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Item' => array( - 'type' => 'object', - 'location' => 'json', - 'additionalProperties' => array( - 'type' => 'object', - 'properties' => array( - 'S' => array( - 'type' => 'string', - ), - 'N' => array( - 'type' => 'string', - ), - 'B' => array( - 'type' => 'string', - ), - 'SS' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'StringAttributeValue', - 'type' => 'string', - ), - ), - 'NS' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'NumberAttributeValue', - 'type' => 'string', - ), - ), - 'BS' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'BinaryAttributeValue', - 'type' => 'string', - ), - ), - ), - ), - ), - 'ConsumedCapacity' => array( - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'TableName' => array( - 'type' => 'string', - ), - 'CapacityUnits' => array( - 'type' => 'numeric', - ), - ), - ), - ), + 'additionalProperties' => array( + 'location' => 'json', + ) ), - 'ListTablesOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'TableNames' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'TableName', - 'type' => 'string', - ), - ), - 'LastEvaluatedTableName' => array( - 'type' => 'string', - 'location' => 'json', - ), - ), - ), - 'PutItemOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Attributes' => array( - 'type' => 'object', - 'location' => 'json', - 'additionalProperties' => array( - 'type' => 'object', - 'properties' => array( - 'S' => array( - 'type' => 'string', - ), - 'N' => array( - 'type' => 'string', - ), - 'B' => array( - 'type' => 'string', - ), - 'SS' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'StringAttributeValue', - 'type' => 'string', - ), - ), - 'NS' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'NumberAttributeValue', - 'type' => 'string', - ), - ), - 'BS' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'BinaryAttributeValue', - 'type' => 'string', - ), - ), - ), - ), - ), - 'ConsumedCapacity' => array( - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'TableName' => array( - 'type' => 'string', - ), - 'CapacityUnits' => array( - 'type' => 'numeric', - ), - ), - ), - 'ItemCollectionMetrics' => array( - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'ItemCollectionKey' => array( - 'type' => 'object', - 'additionalProperties' => array( - 'type' => 'object', - 'properties' => array( - 'S' => array( - 'type' => 'string', - ), - 'N' => array( - 'type' => 'string', - ), - 'B' => array( - 'type' => 'string', - ), - 'SS' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'StringAttributeValue', - 'type' => 'string', - ), - ), - 'NS' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'NumberAttributeValue', - 'type' => 'string', - ), - ), - 'BS' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'BinaryAttributeValue', - 'type' => 'string', - ), - ), - ), - ), - ), - 'SizeEstimateRangeGB' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'ItemCollectionSizeEstimateBound', - 'type' => 'numeric', - ), - ), - ), - ), - ), - ), - 'QueryOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Items' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'AttributeMap', - 'type' => 'object', - 'additionalProperties' => array( - 'type' => 'object', - 'properties' => array( - 'S' => array( - 'type' => 'string', - ), - 'N' => array( - 'type' => 'string', - ), - 'B' => array( - 'type' => 'string', - ), - 'SS' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'StringAttributeValue', - 'type' => 'string', - ), - ), - 'NS' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'NumberAttributeValue', - 'type' => 'string', - ), - ), - 'BS' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'BinaryAttributeValue', - 'type' => 'string', - ), - ), - ), - ), - ), - ), - 'Count' => array( - 'type' => 'numeric', - 'location' => 'json', - ), - 'LastEvaluatedKey' => array( - 'type' => 'object', - 'location' => 'json', - 'additionalProperties' => array( - 'type' => 'object', - 'properties' => array( - 'S' => array( - 'type' => 'string', - ), - 'N' => array( - 'type' => 'string', - ), - 'B' => array( - 'type' => 'string', - ), - 'SS' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'StringAttributeValue', - 'type' => 'string', - ), - ), - 'NS' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'NumberAttributeValue', - 'type' => 'string', - ), - ), - 'BS' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'BinaryAttributeValue', - 'type' => 'string', - ), - ), - ), - ), - ), - 'ConsumedCapacity' => array( - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'TableName' => array( - 'type' => 'string', - ), - 'CapacityUnits' => array( - 'type' => 'numeric', - ), - ), - ), - ), + ), + 'iterators' => array( + 'BatchGetItem' => array( + 'input_token' => 'RequestItems', + 'output_token' => 'UnprocessedKeys', + 'result_key' => 'Responses/*', ), - 'ScanOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Items' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'AttributeMap', - 'type' => 'object', - 'additionalProperties' => array( - 'type' => 'object', - 'properties' => array( - 'S' => array( - 'type' => 'string', - ), - 'N' => array( - 'type' => 'string', - ), - 'B' => array( - 'type' => 'string', - ), - 'SS' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'StringAttributeValue', - 'type' => 'string', - ), - ), - 'NS' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'NumberAttributeValue', - 'type' => 'string', - ), - ), - 'BS' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'BinaryAttributeValue', - 'type' => 'string', - ), - ), - ), - ), - ), - ), - 'Count' => array( - 'type' => 'numeric', - 'location' => 'json', - ), - 'ScannedCount' => array( - 'type' => 'numeric', - 'location' => 'json', - ), - 'LastEvaluatedKey' => array( - 'type' => 'object', - 'location' => 'json', - 'additionalProperties' => array( - 'type' => 'object', - 'properties' => array( - 'S' => array( - 'type' => 'string', - ), - 'N' => array( - 'type' => 'string', - ), - 'B' => array( - 'type' => 'string', - ), - 'SS' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'StringAttributeValue', - 'type' => 'string', - ), - ), - 'NS' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'NumberAttributeValue', - 'type' => 'string', - ), - ), - 'BS' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'BinaryAttributeValue', - 'type' => 'string', - ), - ), - ), - ), - ), - 'ConsumedCapacity' => array( - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'TableName' => array( - 'type' => 'string', - ), - 'CapacityUnits' => array( - 'type' => 'numeric', - ), - ), - ), - ), + 'ListTables' => array( + 'input_token' => 'ExclusiveStartTableName', + 'output_token' => 'LastEvaluatedTableName', + 'limit_key' => 'Limit', + 'result_key' => 'TableNames', ), - 'UpdateItemOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Attributes' => array( - 'type' => 'object', - 'location' => 'json', - 'additionalProperties' => array( - 'type' => 'object', - 'properties' => array( - 'S' => array( - 'type' => 'string', - ), - 'N' => array( - 'type' => 'string', - ), - 'B' => array( - 'type' => 'string', - ), - 'SS' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'StringAttributeValue', - 'type' => 'string', - ), - ), - 'NS' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'NumberAttributeValue', - 'type' => 'string', - ), - ), - 'BS' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'BinaryAttributeValue', - 'type' => 'string', - ), - ), - ), - ), - ), - 'ConsumedCapacity' => array( - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'TableName' => array( - 'type' => 'string', - ), - 'CapacityUnits' => array( - 'type' => 'numeric', - ), - ), - ), - 'ItemCollectionMetrics' => array( - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'ItemCollectionKey' => array( - 'type' => 'object', - 'additionalProperties' => array( - 'type' => 'object', - 'properties' => array( - 'S' => array( - 'type' => 'string', - ), - 'N' => array( - 'type' => 'string', - ), - 'B' => array( - 'type' => 'string', - ), - 'SS' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'StringAttributeValue', - 'type' => 'string', - ), - ), - 'NS' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'NumberAttributeValue', - 'type' => 'string', - ), - ), - 'BS' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'BinaryAttributeValue', - 'type' => 'string', - ), - ), - ), - ), - ), - 'SizeEstimateRangeGB' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'ItemCollectionSizeEstimateBound', - 'type' => 'numeric', - ), - ), - ), - ), - ), + 'Query' => array( + 'input_token' => 'ExclusiveStartKey', + 'output_token' => 'LastEvaluatedKey', + 'limit_key' => 'Limit', + 'result_key' => 'Items', ), - 'UpdateTableOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'TableDescription' => array( - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'AttributeDefinitions' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'AttributeDefinition', - 'type' => 'object', - 'properties' => array( - 'AttributeName' => array( - 'type' => 'string', - ), - 'AttributeType' => array( - 'type' => 'string', - ), - ), - ), - ), - 'TableName' => array( - 'type' => 'string', - ), - 'KeySchema' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'KeySchemaElement', - 'type' => 'object', - 'properties' => array( - 'AttributeName' => array( - 'type' => 'string', - ), - 'KeyType' => array( - 'type' => 'string', - ), - ), - ), - ), - 'TableStatus' => array( - 'type' => 'string', - ), - 'CreationDateTime' => array( - 'type' => 'string', - ), - 'ProvisionedThroughput' => array( - 'type' => 'object', - 'properties' => array( - 'LastIncreaseDateTime' => array( - 'type' => 'string', - ), - 'LastDecreaseDateTime' => array( - 'type' => 'string', - ), - 'NumberOfDecreasesToday' => array( - 'type' => 'numeric', - ), - 'ReadCapacityUnits' => array( - 'type' => 'numeric', - ), - 'WriteCapacityUnits' => array( - 'type' => 'numeric', - ), - ), - ), - 'TableSizeBytes' => array( - 'type' => 'numeric', - ), - 'ItemCount' => array( - 'type' => 'numeric', - ), - 'LocalSecondaryIndexes' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'LocalSecondaryIndexDescription', - 'type' => 'object', - 'properties' => array( - 'IndexName' => array( - 'type' => 'string', - ), - 'KeySchema' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'KeySchemaElement', - 'type' => 'object', - 'properties' => array( - 'AttributeName' => array( - 'type' => 'string', - ), - 'KeyType' => array( - 'type' => 'string', - ), - ), - ), - ), - 'Projection' => array( - 'type' => 'object', - 'properties' => array( - 'ProjectionType' => array( - 'type' => 'string', - ), - 'NonKeyAttributes' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'NonKeyAttributeName', - 'type' => 'string', - ), - ), - ), - ), - 'IndexSizeBytes' => array( - 'type' => 'numeric', - ), - 'ItemCount' => array( - 'type' => 'numeric', - ), - ), - ), - ), - ), - ), - ), + 'Scan' => array( + 'input_token' => 'ExclusiveStartKey', + 'output_token' => 'LastEvaluatedKey', + 'limit_key' => 'Limit', + 'result_key' => 'Items', ), ), 'waiters' => array( diff --git a/inc/aws-sdk/Aws/DynamoDb/Session/LockingStrategy/AbstractLockingStrategy.php b/inc/aws-sdk/Aws/DynamoDb/Session/LockingStrategy/AbstractLockingStrategy.php index 438799d..7db4ade 100755 --- a/inc/aws-sdk/Aws/DynamoDb/Session/LockingStrategy/AbstractLockingStrategy.php +++ b/inc/aws-sdk/Aws/DynamoDb/Session/LockingStrategy/AbstractLockingStrategy.php @@ -61,11 +61,17 @@ abstract class AbstractLockingStrategy implements LockingStrategyInterface ) ); if ($isDataChanged) { - $attributes['data'] = array( - 'Value' => array( - 'S' => $data - ) - ); + if ($data != '') { + $attributes['data'] = array( + 'Value' => array( + 'S' => $data + ) + ); + } else { + $attributes['data'] = array( + 'Action' => 'DELETE' + ); + } } $attributes = array_merge($attributes, $this->getExtraAttributes()); diff --git a/inc/aws-sdk/Aws/Ec2/CopySnapshotListener.php b/inc/aws-sdk/Aws/Ec2/CopySnapshotListener.php new file mode 100644 index 0000000..d1e2ace --- /dev/null +++ b/inc/aws-sdk/Aws/Ec2/CopySnapshotListener.php @@ -0,0 +1,82 @@ + 'onCommandBeforePrepare'); + } + + public function onCommandBeforePrepare(Event $event) + { + /** @var CommandInterface $command */ + $command = $event['command']; + + if ($command->getName() !== 'CopySnapshot') { + return; + } elseif ($command['__internal']) { + // Prevent infinite recursion when adding the presigned URL + unset($command['__internal']); + return; + } + + /** @var AwsClientInterface $client */ + $client = $command->getClient(); + $presignedUrl = $this->createPresignedUrl($client, $command); + $command['DestinationRegion'] = $client->getRegion(); + $command['PresignedUrl'] = $presignedUrl; + } + + private function createPresignedUrl( + AwsClientInterface $client, + CommandInterface $command + ) { + // Create a temporary client used to generate the presigned URL + $newClient = Ec2Client::factory(array( + 'region' => $command['SourceRegion'], + 'signature' => 'v4', + 'credentials' => $client->getCredentials(), + )); + + $preCommand = $newClient->getCommand( + 'CopySnapshot', + $command->toArray() + ); + + $preCommand['__internal'] = true; + /** @var \Guzzle\Http\Message\EntityEnclosingRequest $preRequest */ + $preRequest = $preCommand->prepare(); + + return $newClient->getSignature()->createPresignedUrl( + SignatureV4::convertPostToGet($preRequest), + $newClient->getCredentials(), + '+1 hour' + ); + } +} diff --git a/inc/aws-sdk/Aws/Ec2/Ec2Client.php b/inc/aws-sdk/Aws/Ec2/Ec2Client.php index 339cc00..38aaf1c 100755 --- a/inc/aws-sdk/Aws/Ec2/Ec2Client.php +++ b/inc/aws-sdk/Aws/Ec2/Ec2Client.php @@ -26,12 +26,13 @@ use Guzzle\Service\Resource\ResourceIteratorInterface; /** * Client to interact with Amazon Elastic Compute Cloud * - * @method Model activateLicense(array $args = array()) {@command Ec2 ActivateLicense} + * @method Model acceptVpcPeeringConnection(array $args = array()) {@command Ec2 AcceptVpcPeeringConnection} * @method Model allocateAddress(array $args = array()) {@command Ec2 AllocateAddress} * @method Model assignPrivateIpAddresses(array $args = array()) {@command Ec2 AssignPrivateIpAddresses} * @method Model associateAddress(array $args = array()) {@command Ec2 AssociateAddress} * @method Model associateDhcpOptions(array $args = array()) {@command Ec2 AssociateDhcpOptions} * @method Model associateRouteTable(array $args = array()) {@command Ec2 AssociateRouteTable} + * @method Model attachClassicLinkVpc(array $args = array()) {@command Ec2 AttachClassicLinkVpc} * @method Model attachInternetGateway(array $args = array()) {@command Ec2 AttachInternetGateway} * @method Model attachNetworkInterface(array $args = array()) {@command Ec2 AttachNetworkInterface} * @method Model attachVolume(array $args = array()) {@command Ec2 AttachVolume} @@ -42,6 +43,7 @@ use Guzzle\Service\Resource\ResourceIteratorInterface; * @method Model cancelBundleTask(array $args = array()) {@command Ec2 CancelBundleTask} * @method Model cancelConversionTask(array $args = array()) {@command Ec2 CancelConversionTask} * @method Model cancelExportTask(array $args = array()) {@command Ec2 CancelExportTask} + * @method Model cancelImportTask(array $args = array()) {@command Ec2 CancelImportTask} * @method Model cancelReservedInstancesListing(array $args = array()) {@command Ec2 CancelReservedInstancesListing} * @method Model cancelSpotInstanceRequests(array $args = array()) {@command Ec2 CancelSpotInstanceRequests} * @method Model confirmProductInstance(array $args = array()) {@command Ec2 ConfirmProductInstance} @@ -67,10 +69,10 @@ use Guzzle\Service\Resource\ResourceIteratorInterface; * @method Model createTags(array $args = array()) {@command Ec2 CreateTags} * @method Model createVolume(array $args = array()) {@command Ec2 CreateVolume} * @method Model createVpc(array $args = array()) {@command Ec2 CreateVpc} + * @method Model createVpcPeeringConnection(array $args = array()) {@command Ec2 CreateVpcPeeringConnection} * @method Model createVpnConnection(array $args = array()) {@command Ec2 CreateVpnConnection} * @method Model createVpnConnectionRoute(array $args = array()) {@command Ec2 CreateVpnConnectionRoute} * @method Model createVpnGateway(array $args = array()) {@command Ec2 CreateVpnGateway} - * @method Model deactivateLicense(array $args = array()) {@command Ec2 DeactivateLicense} * @method Model deleteCustomerGateway(array $args = array()) {@command Ec2 DeleteCustomerGateway} * @method Model deleteDhcpOptions(array $args = array()) {@command Ec2 DeleteDhcpOptions} * @method Model deleteInternetGateway(array $args = array()) {@command Ec2 DeleteInternetGateway} @@ -88,6 +90,7 @@ use Guzzle\Service\Resource\ResourceIteratorInterface; * @method Model deleteTags(array $args = array()) {@command Ec2 DeleteTags} * @method Model deleteVolume(array $args = array()) {@command Ec2 DeleteVolume} * @method Model deleteVpc(array $args = array()) {@command Ec2 DeleteVpc} + * @method Model deleteVpcPeeringConnection(array $args = array()) {@command Ec2 DeleteVpcPeeringConnection} * @method Model deleteVpnConnection(array $args = array()) {@command Ec2 DeleteVpnConnection} * @method Model deleteVpnConnectionRoute(array $args = array()) {@command Ec2 DeleteVpnConnectionRoute} * @method Model deleteVpnGateway(array $args = array()) {@command Ec2 DeleteVpnGateway} @@ -96,18 +99,20 @@ use Guzzle\Service\Resource\ResourceIteratorInterface; * @method Model describeAddresses(array $args = array()) {@command Ec2 DescribeAddresses} * @method Model describeAvailabilityZones(array $args = array()) {@command Ec2 DescribeAvailabilityZones} * @method Model describeBundleTasks(array $args = array()) {@command Ec2 DescribeBundleTasks} + * @method Model describeClassicLinkInstances(array $args = array()) {@command Ec2 DescribeClassicLinkInstances} * @method Model describeConversionTasks(array $args = array()) {@command Ec2 DescribeConversionTasks} * @method Model describeCustomerGateways(array $args = array()) {@command Ec2 DescribeCustomerGateways} * @method Model describeDhcpOptions(array $args = array()) {@command Ec2 DescribeDhcpOptions} * @method Model describeExportTasks(array $args = array()) {@command Ec2 DescribeExportTasks} * @method Model describeImageAttribute(array $args = array()) {@command Ec2 DescribeImageAttribute} * @method Model describeImages(array $args = array()) {@command Ec2 DescribeImages} + * @method Model describeImportImageTasks(array $args = array()) {@command Ec2 DescribeImportImageTasks} + * @method Model describeImportSnapshotTasks(array $args = array()) {@command Ec2 DescribeImportSnapshotTasks} * @method Model describeInstanceAttribute(array $args = array()) {@command Ec2 DescribeInstanceAttribute} * @method Model describeInstanceStatus(array $args = array()) {@command Ec2 DescribeInstanceStatus} * @method Model describeInstances(array $args = array()) {@command Ec2 DescribeInstances} * @method Model describeInternetGateways(array $args = array()) {@command Ec2 DescribeInternetGateways} * @method Model describeKeyPairs(array $args = array()) {@command Ec2 DescribeKeyPairs} - * @method Model describeLicenses(array $args = array()) {@command Ec2 DescribeLicenses} * @method Model describeNetworkAcls(array $args = array()) {@command Ec2 DescribeNetworkAcls} * @method Model describeNetworkInterfaceAttribute(array $args = array()) {@command Ec2 DescribeNetworkInterfaceAttribute} * @method Model describeNetworkInterfaces(array $args = array()) {@command Ec2 DescribeNetworkInterfaces} @@ -130,34 +135,43 @@ use Guzzle\Service\Resource\ResourceIteratorInterface; * @method Model describeVolumeStatus(array $args = array()) {@command Ec2 DescribeVolumeStatus} * @method Model describeVolumes(array $args = array()) {@command Ec2 DescribeVolumes} * @method Model describeVpcAttribute(array $args = array()) {@command Ec2 DescribeVpcAttribute} + * @method Model describeVpcClassicLink(array $args = array()) {@command Ec2 DescribeVpcClassicLink} + * @method Model describeVpcPeeringConnections(array $args = array()) {@command Ec2 DescribeVpcPeeringConnections} * @method Model describeVpcs(array $args = array()) {@command Ec2 DescribeVpcs} * @method Model describeVpnConnections(array $args = array()) {@command Ec2 DescribeVpnConnections} * @method Model describeVpnGateways(array $args = array()) {@command Ec2 DescribeVpnGateways} + * @method Model detachClassicLinkVpc(array $args = array()) {@command Ec2 DetachClassicLinkVpc} * @method Model detachInternetGateway(array $args = array()) {@command Ec2 DetachInternetGateway} * @method Model detachNetworkInterface(array $args = array()) {@command Ec2 DetachNetworkInterface} * @method Model detachVolume(array $args = array()) {@command Ec2 DetachVolume} * @method Model detachVpnGateway(array $args = array()) {@command Ec2 DetachVpnGateway} * @method Model disableVgwRoutePropagation(array $args = array()) {@command Ec2 DisableVgwRoutePropagation} + * @method Model disableVpcClassicLink(array $args = array()) {@command Ec2 DisableVpcClassicLink} * @method Model disassociateAddress(array $args = array()) {@command Ec2 DisassociateAddress} * @method Model disassociateRouteTable(array $args = array()) {@command Ec2 DisassociateRouteTable} * @method Model enableVgwRoutePropagation(array $args = array()) {@command Ec2 EnableVgwRoutePropagation} * @method Model enableVolumeIO(array $args = array()) {@command Ec2 EnableVolumeIO} + * @method Model enableVpcClassicLink(array $args = array()) {@command Ec2 EnableVpcClassicLink} * @method Model getConsoleOutput(array $args = array()) {@command Ec2 GetConsoleOutput} * @method Model getPasswordData(array $args = array()) {@command Ec2 GetPasswordData} + * @method Model importImage(array $args = array()) {@command Ec2 ImportImage} * @method Model importInstance(array $args = array()) {@command Ec2 ImportInstance} * @method Model importKeyPair(array $args = array()) {@command Ec2 ImportKeyPair} + * @method Model importSnapshot(array $args = array()) {@command Ec2 ImportSnapshot} * @method Model importVolume(array $args = array()) {@command Ec2 ImportVolume} * @method Model modifyImageAttribute(array $args = array()) {@command Ec2 ModifyImageAttribute} * @method Model modifyInstanceAttribute(array $args = array()) {@command Ec2 ModifyInstanceAttribute} * @method Model modifyNetworkInterfaceAttribute(array $args = array()) {@command Ec2 ModifyNetworkInterfaceAttribute} * @method Model modifyReservedInstances(array $args = array()) {@command Ec2 ModifyReservedInstances} * @method Model modifySnapshotAttribute(array $args = array()) {@command Ec2 ModifySnapshotAttribute} + * @method Model modifySubnetAttribute(array $args = array()) {@command Ec2 ModifySubnetAttribute} * @method Model modifyVolumeAttribute(array $args = array()) {@command Ec2 ModifyVolumeAttribute} * @method Model modifyVpcAttribute(array $args = array()) {@command Ec2 ModifyVpcAttribute} * @method Model monitorInstances(array $args = array()) {@command Ec2 MonitorInstances} * @method Model purchaseReservedInstancesOffering(array $args = array()) {@command Ec2 PurchaseReservedInstancesOffering} * @method Model rebootInstances(array $args = array()) {@command Ec2 RebootInstances} * @method Model registerImage(array $args = array()) {@command Ec2 RegisterImage} + * @method Model rejectVpcPeeringConnection(array $args = array()) {@command Ec2 RejectVpcPeeringConnection} * @method Model releaseAddress(array $args = array()) {@command Ec2 ReleaseAddress} * @method Model replaceNetworkAclAssociation(array $args = array()) {@command Ec2 ReplaceNetworkAclAssociation} * @method Model replaceNetworkAclEntry(array $args = array()) {@command Ec2 ReplaceNetworkAclEntry} @@ -177,24 +191,24 @@ use Guzzle\Service\Resource\ResourceIteratorInterface; * @method Model terminateInstances(array $args = array()) {@command Ec2 TerminateInstances} * @method Model unassignPrivateIpAddresses(array $args = array()) {@command Ec2 UnassignPrivateIpAddresses} * @method Model unmonitorInstances(array $args = array()) {@command Ec2 UnmonitorInstances} - * @method waitUntilInstanceRunning(array $input) Wait using the InstanceRunning waiter. The input array uses the parameters of the DescribeInstances operation and waiter specific settings - * @method waitUntilInstanceStopped(array $input) Wait using the InstanceStopped waiter. The input array uses the parameters of the DescribeInstances operation and waiter specific settings - * @method waitUntilInstanceTerminated(array $input) Wait using the InstanceTerminated waiter. The input array uses the parameters of the DescribeInstances operation and waiter specific settings - * @method waitUntilExportTaskCompleted(array $input) Wait using the ExportTaskCompleted waiter. The input array uses the parameters of the DescribeExportTasks operation and waiter specific settings - * @method waitUntilExportTaskCancelled(array $input) Wait using the ExportTaskCancelled waiter. The input array uses the parameters of the DescribeExportTasks operation and waiter specific settings - * @method waitUntilSnapshotCompleted(array $input) Wait using the SnapshotCompleted waiter. The input array uses the parameters of the DescribeSnapshots operation and waiter specific settings - * @method waitUntilSubnetAvailable(array $input) Wait using the SubnetAvailable waiter. The input array uses the parameters of the DescribeSubnets operation and waiter specific settings - * @method waitUntilVolumeAvailable(array $input) Wait using the VolumeAvailable waiter. The input array uses the parameters of the DescribeVolumes operation and waiter specific settings - * @method waitUntilVolumeInUse(array $input) Wait using the VolumeInUse waiter. The input array uses the parameters of the DescribeVolumes operation and waiter specific settings - * @method waitUntilVolumeDeleted(array $input) Wait using the VolumeDeleted waiter. The input array uses the parameters of the DescribeVolumes operation and waiter specific settings - * @method waitUntilVpcAvailable(array $input) Wait using the VpcAvailable waiter. The input array uses the parameters of the DescribeVpcs operation and waiter specific settings - * @method waitUntilVpnConnectionAvailable(array $input) Wait using the VpnConnectionAvailable waiter. The input array uses the parameters of the DescribeVpnConnections operation and waiter specific settings - * @method waitUntilVpnConnectionDeleted(array $input) Wait using the VpnConnectionDeleted waiter. The input array uses the parameters of the DescribeVpnConnections operation and waiter specific settings - * @method waitUntilBundleTaskComplete(array $input) Wait using the BundleTaskComplete waiter. The input array uses the parameters of the DescribeBundleTasks operation and waiter specific settings - * @method waitUntilConversionTaskCompleted(array $input) Wait using the ConversionTaskCompleted waiter. The input array uses the parameters of the DescribeConversionTasks operation and waiter specific settings - * @method waitUntilConversionTaskCancelled(array $input) Wait using the ConversionTaskCancelled waiter. The input array uses the parameters of the DescribeConversionTasks operation and waiter specific settings - * @method waitUntilCustomerGatewayAvailable(array $input) Wait using the CustomerGatewayAvailable waiter. The input array uses the parameters of the DescribeCustomerGateways operation and waiter specific settings - * @method waitUntilConversionTaskDeleted(array $input) Wait using the ConversionTaskDeleted waiter. The input array uses the parameters of the DescribeCustomerGateways operation and waiter specific settings + * @method waitUntilInstanceRunning(array $input) The input array uses the parameters of the DescribeInstances operation and waiter specific settings + * @method waitUntilInstanceStopped(array $input) The input array uses the parameters of the DescribeInstances operation and waiter specific settings + * @method waitUntilInstanceTerminated(array $input) The input array uses the parameters of the DescribeInstances operation and waiter specific settings + * @method waitUntilExportTaskCompleted(array $input) The input array uses the parameters of the DescribeExportTasks operation and waiter specific settings + * @method waitUntilExportTaskCancelled(array $input) The input array uses the parameters of the DescribeExportTasks operation and waiter specific settings + * @method waitUntilSnapshotCompleted(array $input) The input array uses the parameters of the DescribeSnapshots operation and waiter specific settings + * @method waitUntilSubnetAvailable(array $input) The input array uses the parameters of the DescribeSubnets operation and waiter specific settings + * @method waitUntilVolumeAvailable(array $input) The input array uses the parameters of the DescribeVolumes operation and waiter specific settings + * @method waitUntilVolumeInUse(array $input) The input array uses the parameters of the DescribeVolumes operation and waiter specific settings + * @method waitUntilVolumeDeleted(array $input) The input array uses the parameters of the DescribeVolumes operation and waiter specific settings + * @method waitUntilVpcAvailable(array $input) The input array uses the parameters of the DescribeVpcs operation and waiter specific settings + * @method waitUntilVpnConnectionAvailable(array $input) The input array uses the parameters of the DescribeVpnConnections operation and waiter specific settings + * @method waitUntilVpnConnectionDeleted(array $input) The input array uses the parameters of the DescribeVpnConnections operation and waiter specific settings + * @method waitUntilBundleTaskComplete(array $input) The input array uses the parameters of the DescribeBundleTasks operation and waiter specific settings + * @method waitUntilConversionTaskCompleted(array $input) The input array uses the parameters of the DescribeConversionTasks operation and waiter specific settings + * @method waitUntilConversionTaskCancelled(array $input) The input array uses the parameters of the DescribeConversionTasks operation and waiter specific settings + * @method waitUntilCustomerGatewayAvailable(array $input) The input array uses the parameters of the DescribeCustomerGateways operation and waiter specific settings + * @method waitUntilConversionTaskDeleted(array $input) The input array uses the parameters of the DescribeCustomerGateways operation and waiter specific settings * @method ResourceIteratorInterface getDescribeAccountAttributesIterator(array $args = array()) The input array uses the parameters of the DescribeAccountAttributes operation * @method ResourceIteratorInterface getDescribeAddressesIterator(array $args = array()) The input array uses the parameters of the DescribeAddresses operation * @method ResourceIteratorInterface getDescribeAvailabilityZonesIterator(array $args = array()) The input array uses the parameters of the DescribeAvailabilityZones operation @@ -208,15 +222,14 @@ use Guzzle\Service\Resource\ResourceIteratorInterface; * @method ResourceIteratorInterface getDescribeInstancesIterator(array $args = array()) The input array uses the parameters of the DescribeInstances operation * @method ResourceIteratorInterface getDescribeInternetGatewaysIterator(array $args = array()) The input array uses the parameters of the DescribeInternetGateways operation * @method ResourceIteratorInterface getDescribeKeyPairsIterator(array $args = array()) The input array uses the parameters of the DescribeKeyPairs operation - * @method ResourceIteratorInterface getDescribeLicensesIterator(array $args = array()) The input array uses the parameters of the DescribeLicenses operation * @method ResourceIteratorInterface getDescribeNetworkAclsIterator(array $args = array()) The input array uses the parameters of the DescribeNetworkAcls operation * @method ResourceIteratorInterface getDescribeNetworkInterfacesIterator(array $args = array()) The input array uses the parameters of the DescribeNetworkInterfaces operation * @method ResourceIteratorInterface getDescribePlacementGroupsIterator(array $args = array()) The input array uses the parameters of the DescribePlacementGroups operation * @method ResourceIteratorInterface getDescribeRegionsIterator(array $args = array()) The input array uses the parameters of the DescribeRegions operation * @method ResourceIteratorInterface getDescribeReservedInstancesIterator(array $args = array()) The input array uses the parameters of the DescribeReservedInstances operation * @method ResourceIteratorInterface getDescribeReservedInstancesListingsIterator(array $args = array()) The input array uses the parameters of the DescribeReservedInstancesListings operation - * @method ResourceIteratorInterface getDescribeReservedInstancesModificationsIterator(array $args = array()) The input array uses the parameters of the DescribeReservedInstancesModifications operation * @method ResourceIteratorInterface getDescribeReservedInstancesOfferingsIterator(array $args = array()) The input array uses the parameters of the DescribeReservedInstancesOfferings operation + * @method ResourceIteratorInterface getDescribeReservedInstancesModificationsIterator(array $args = array()) The input array uses the parameters of the DescribeReservedInstancesModifications operation * @method ResourceIteratorInterface getDescribeRouteTablesIterator(array $args = array()) The input array uses the parameters of the DescribeRouteTables operation * @method ResourceIteratorInterface getDescribeSecurityGroupsIterator(array $args = array()) The input array uses the parameters of the DescribeSecurityGroups operation * @method ResourceIteratorInterface getDescribeSnapshotsIterator(array $args = array()) The input array uses the parameters of the DescribeSnapshots operation @@ -230,29 +243,33 @@ use Guzzle\Service\Resource\ResourceIteratorInterface; * @method ResourceIteratorInterface getDescribeVpnConnectionsIterator(array $args = array()) The input array uses the parameters of the DescribeVpnConnections operation * @method ResourceIteratorInterface getDescribeVpnGatewaysIterator(array $args = array()) The input array uses the parameters of the DescribeVpnGateways operation * - * @link http://docs.aws.amazon.com/aws-sdk-php/guide/latest/service-ec2.html User guide - * @link http://docs.aws.amazon.com/aws-sdk-php/latest/class-Aws.Ec2.Ec2Client.html API docs + * @link http://docs.aws.amazon.com/aws-sdk-php/v2/guide/service-ec2.html User guide + * @link http://docs.aws.amazon.com/aws-sdk-php/v2/api/class-Aws.Ec2.Ec2Client.html API docs */ class Ec2Client extends AbstractClient { - const LATEST_API_VERSION = '2013-10-01'; + const LATEST_API_VERSION = '2015-03-01'; /** - * Factory method to create a new AWS Elastic Beanstalk client using an array of configuration options. + * Factory method to create a new AWS Elastic Compute Cloud client using an array of configuration options. * * @param array|Collection $config Client configuration data * * @return self - * @see \Aws\Common\Client\DefaultClient for a list of available configuration options + * @link http://docs.aws.amazon.com/aws-sdk-php/v2/guide/configuration.html#client-configuration-options */ public static function factory($config = array()) { - return ClientBuilder::factory(__NAMESPACE__) + $client = ClientBuilder::factory(__NAMESPACE__) ->setConfig($config) ->setConfigDefaults(array( Options::VERSION => self::LATEST_API_VERSION, Options::SERVICE_DESCRIPTION => __DIR__ . '/Resources/ec2-%s.php' )) ->build(); + + $client->addSubscriber(new CopySnapshotListener()); + + return $client; } } diff --git a/inc/aws-sdk/Aws/Ec2/Enum/InstanceType.php b/inc/aws-sdk/Aws/Ec2/Enum/InstanceType.php index 587a560..23ab95a 100755 --- a/inc/aws-sdk/Aws/Ec2/Enum/InstanceType.php +++ b/inc/aws-sdk/Aws/Ec2/Enum/InstanceType.php @@ -28,17 +28,37 @@ class InstanceType extends Enum const M1_MEDIUM = 'm1.medium'; const M1_LARGE = 'm1.large'; const M1_XLARGE = 'm1.xlarge'; + const M3_MEDIUM = 'm3.medium'; + const M3_LARGE = 'm3.large'; + const M3_XLARGE = 'm3.xlarge'; + const M3_2XLARGE = 'm3.2xlarge'; const M2_XLARGE = 'm2.xlarge'; const M2_2XLARGE = 'm2.2xlarge'; const M2_4XLARGE = 'm2.4xlarge'; - const M3_XLARGE = 'm3.xlarge'; - const M3_2XLARGE = 'm3.2xlarge'; - const C1_MEDIUM = 'c1.medium'; - const C1_XLARGE = 'c1.xlarge'; + const CR1_8XLARGE = 'cr1.8xlarge'; + const I2_XLARGE = 'i2.xlarge'; + const I2_2XLARGE = 'i2.2xlarge'; + const I2_4XLARGE = 'i2.4xlarge'; + const I2_8XLARGE = 'i2.8xlarge'; const HI1_4XLARGE = 'hi1.4xlarge'; const HS1_8XLARGE = 'hs1.8xlarge'; + const C1_MEDIUM = 'c1.medium'; + const C1_XLARGE = 'c1.xlarge'; + const C3_LARGE = 'c3.large'; + const C3_XLARGE = 'c3.xlarge'; + const C3_2XLARGE = 'c3.2xlarge'; + const C3_4XLARGE = 'c3.4xlarge'; + const C3_8XLARGE = 'c3.8xlarge'; const CC1_4XLARGE = 'cc1.4xlarge'; const CC2_8XLARGE = 'cc2.8xlarge'; + const G2_2XLARGE = 'g2.2xlarge'; const CG1_4XLARGE = 'cg1.4xlarge'; - const CR1_8XLARGE = 'cr1.8xlarge'; + const R3_LARGE = 'r3.large'; + const R3_XLARGE = 'r3.xlarge'; + const R3_2XLARGE = 'r3.2xlarge'; + const R3_4XLARGE = 'r3.4xlarge'; + const R3_8XLARGE = 'r3.8xlarge'; + const T2_MICRO = 't2.micro'; + const T2_SMALL = 't2.small'; + const T2_MEDIUM = 't2.medium'; } diff --git a/inc/aws-sdk/Aws/Ec2/Enum/RouteOrigin.php b/inc/aws-sdk/Aws/Ec2/Enum/RouteOrigin.php new file mode 100644 index 0000000..fb8dff7 --- /dev/null +++ b/inc/aws-sdk/Aws/Ec2/Enum/RouteOrigin.php @@ -0,0 +1,29 @@ + '2015-03-01', + 'endpointPrefix' => 'ec2', + 'serviceFullName' => 'Amazon Elastic Compute Cloud', + 'serviceAbbreviation' => 'Amazon EC2', + 'serviceType' => 'query', + 'signatureVersion' => 'v4', + 'namespace' => 'Ec2', + 'regions' => array( + 'us-east-1' => array( + 'http' => true, + 'https' => true, + 'hostname' => 'ec2.us-east-1.amazonaws.com', + ), + 'us-west-1' => array( + 'http' => true, + 'https' => true, + 'hostname' => 'ec2.us-west-1.amazonaws.com', + ), + 'us-west-2' => array( + 'http' => true, + 'https' => true, + 'hostname' => 'ec2.us-west-2.amazonaws.com', + ), + 'eu-west-1' => array( + 'http' => true, + 'https' => true, + 'hostname' => 'ec2.eu-west-1.amazonaws.com', + ), + 'ap-northeast-1' => array( + 'http' => true, + 'https' => true, + 'hostname' => 'ec2.ap-northeast-1.amazonaws.com', + ), + 'ap-southeast-1' => array( + 'http' => true, + 'https' => true, + 'hostname' => 'ec2.ap-southeast-1.amazonaws.com', + ), + 'ap-southeast-2' => array( + 'http' => true, + 'https' => true, + 'hostname' => 'ec2.ap-southeast-2.amazonaws.com', + ), + 'sa-east-1' => array( + 'http' => true, + 'https' => true, + 'hostname' => 'ec2.sa-east-1.amazonaws.com', + ), + 'cn-north-1' => array( + 'http' => true, + 'https' => true, + 'hostname' => 'ec2.cn-north-1.amazonaws.com.cn', + ), + 'us-gov-west-1' => array( + 'http' => false, + 'https' => true, + 'hostname' => 'ec2.us-gov-west-1.amazonaws.com', + ), + ), + 'operations' => array( + 'AcceptVpcPeeringConnection' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'AcceptVpcPeeringConnectionResult', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'AcceptVpcPeeringConnection', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'VpcPeeringConnectionId' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + ), + 'AllocateAddress' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'AllocateAddressResult', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'AllocateAddress', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'Domain' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + ), + 'AssignPrivateIpAddresses' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'EmptyOutput', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'AssignPrivateIpAddresses', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'NetworkInterfaceId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'PrivateIpAddresses' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'PrivateIpAddress', + 'items' => array( + 'name' => 'PrivateIpAddress', + 'type' => 'string', + ), + ), + 'SecondaryPrivateIpAddressCount' => array( + 'type' => 'numeric', + 'location' => 'aws.query', + ), + 'AllowReassignment' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + ), + ), + 'AssociateAddress' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'AssociateAddressResult', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'AssociateAddress', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'InstanceId' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'PublicIp' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'AllocationId' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'NetworkInterfaceId' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'PrivateIpAddress' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'AllowReassociation' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + ), + ), + 'AssociateDhcpOptions' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'EmptyOutput', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'AssociateDhcpOptions', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'DhcpOptionsId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'VpcId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + ), + 'AssociateRouteTable' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'AssociateRouteTableResult', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'AssociateRouteTable', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'SubnetId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'RouteTableId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + ), + 'AttachClassicLinkVpc' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'AttachClassicLinkVpcResult', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'AttachClassicLinkVpc', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'InstanceId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'VpcId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'Groups' => array( + 'required' => true, + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'SecurityGroupId', + 'items' => array( + 'name' => 'SecurityGroupId', + 'type' => 'string', + ), + ), + ), + ), + 'AttachInternetGateway' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'EmptyOutput', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'AttachInternetGateway', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'InternetGatewayId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'VpcId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + ), + 'AttachNetworkInterface' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'AttachNetworkInterfaceResult', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'AttachNetworkInterface', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'NetworkInterfaceId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'InstanceId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'DeviceIndex' => array( + 'required' => true, + 'type' => 'numeric', + 'location' => 'aws.query', + ), + ), + ), + 'AttachVolume' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'attachment', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'AttachVolume', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'VolumeId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'InstanceId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'Device' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + ), + 'AttachVpnGateway' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'AttachVpnGatewayResult', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'AttachVpnGateway', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'VpnGatewayId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'VpcId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + ), + 'AuthorizeSecurityGroupEgress' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'EmptyOutput', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'AuthorizeSecurityGroupEgress', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'GroupId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'SourceSecurityGroupName' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'SourceSecurityGroupOwnerId' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'IpProtocol' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'FromPort' => array( + 'type' => 'numeric', + 'location' => 'aws.query', + ), + 'ToPort' => array( + 'type' => 'numeric', + 'location' => 'aws.query', + ), + 'CidrIp' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'IpPermissions' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'items' => array( + 'name' => 'IpPermission', + 'type' => 'object', + 'properties' => array( + 'IpProtocol' => array( + 'type' => 'string', + ), + 'FromPort' => array( + 'type' => 'numeric', + ), + 'ToPort' => array( + 'type' => 'numeric', + ), + 'UserIdGroupPairs' => array( + 'type' => 'array', + 'sentAs' => 'Groups', + 'items' => array( + 'name' => 'Groups', + 'type' => 'object', + 'properties' => array( + 'UserId' => array( + 'type' => 'string', + ), + 'GroupName' => array( + 'type' => 'string', + ), + 'GroupId' => array( + 'type' => 'string', + ), + ), + ), + ), + 'IpRanges' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'IpRange', + 'type' => 'object', + 'properties' => array( + 'CidrIp' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + ), + ), + ), + 'AuthorizeSecurityGroupIngress' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'EmptyOutput', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'AuthorizeSecurityGroupIngress', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'GroupName' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'GroupId' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'SourceSecurityGroupName' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'SourceSecurityGroupOwnerId' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'IpProtocol' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'FromPort' => array( + 'type' => 'numeric', + 'location' => 'aws.query', + ), + 'ToPort' => array( + 'type' => 'numeric', + 'location' => 'aws.query', + ), + 'CidrIp' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'IpPermissions' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'items' => array( + 'name' => 'IpPermission', + 'type' => 'object', + 'properties' => array( + 'IpProtocol' => array( + 'type' => 'string', + ), + 'FromPort' => array( + 'type' => 'numeric', + ), + 'ToPort' => array( + 'type' => 'numeric', + ), + 'UserIdGroupPairs' => array( + 'type' => 'array', + 'sentAs' => 'Groups', + 'items' => array( + 'name' => 'Groups', + 'type' => 'object', + 'properties' => array( + 'UserId' => array( + 'type' => 'string', + ), + 'GroupName' => array( + 'type' => 'string', + ), + 'GroupId' => array( + 'type' => 'string', + ), + ), + ), + ), + 'IpRanges' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'IpRange', + 'type' => 'object', + 'properties' => array( + 'CidrIp' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + ), + ), + ), + 'BundleInstance' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'BundleInstanceResult', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'BundleInstance', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'InstanceId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'Storage' => array( + 'required' => true, + 'type' => 'object', + 'location' => 'aws.query', + 'properties' => array( + 'S3' => array( + 'type' => 'object', + 'properties' => array( + 'Bucket' => array( + 'type' => 'string', + ), + 'Prefix' => array( + 'type' => 'string', + ), + 'AWSAccessKeyId' => array( + 'type' => 'string', + ), + 'UploadPolicy' => array( + 'type' => 'string', + ), + 'UploadPolicySignature' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + ), + 'CancelBundleTask' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'CancelBundleTaskResult', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'CancelBundleTask', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'BundleId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + ), + 'CancelConversionTask' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'EmptyOutput', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'CancelConversionTask', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'ConversionTaskId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'ReasonMessage' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + ), + 'CancelExportTask' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'EmptyOutput', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'CancelExportTask', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'ExportTaskId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + ), + 'CancelImportTask' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'CancelImportTaskResult', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'CancelImportTask', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'ImportTaskId' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'CancelReason' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + ), + 'CancelReservedInstancesListing' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'CancelReservedInstancesListingResult', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'CancelReservedInstancesListing', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'ReservedInstancesListingId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + ), + 'CancelSpotInstanceRequests' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'CancelSpotInstanceRequestsResult', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'CancelSpotInstanceRequests', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'SpotInstanceRequestIds' => array( + 'required' => true, + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'SpotInstanceRequestId', + 'items' => array( + 'name' => 'SpotInstanceRequestId', + 'type' => 'string', + ), + ), + ), + ), + 'ConfirmProductInstance' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'ConfirmProductInstanceResult', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'ConfirmProductInstance', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'ProductCode' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'InstanceId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + ), + 'CopyImage' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'CopyImageResult', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'CopyImage', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'SourceRegion' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'SourceImageId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'Name' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'Description' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'ClientToken' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + ), + 'CopySnapshot' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'CopySnapshotResult', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'CopySnapshot', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'SourceRegion' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'SourceSnapshotId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'Description' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'DestinationRegion' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'PresignedUrl' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + ), + 'CreateCustomerGateway' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'CreateCustomerGatewayResult', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'CreateCustomerGateway', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'Type' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'PublicIp' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + 'sentAs' => 'IpAddress', + ), + 'BgpAsn' => array( + 'required' => true, + 'type' => 'numeric', + 'location' => 'aws.query', + ), + ), + ), + 'CreateDhcpOptions' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'CreateDhcpOptionsResult', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'CreateDhcpOptions', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'DhcpConfigurations' => array( + 'required' => true, + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'DhcpConfiguration', + 'items' => array( + 'name' => 'DhcpConfiguration', + 'type' => 'object', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + ), + 'Values' => array( + 'type' => 'array', + 'sentAs' => 'Value', + 'items' => array( + 'name' => 'Value', + 'type' => 'string', + ), + ), + ), + ), + ), + ), + ), + 'CreateImage' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'CreateImageResult', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'CreateImage', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'InstanceId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'Name' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'Description' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'NoReboot' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'BlockDeviceMappings' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'BlockDeviceMapping', + 'items' => array( + 'name' => 'BlockDeviceMapping', + 'type' => 'object', + 'properties' => array( + 'VirtualName' => array( + 'type' => 'string', + ), + 'DeviceName' => array( + 'type' => 'string', + ), + 'Ebs' => array( + 'type' => 'object', + 'properties' => array( + 'SnapshotId' => array( + 'type' => 'string', + ), + 'VolumeSize' => array( + 'type' => 'numeric', + ), + 'DeleteOnTermination' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + ), + 'VolumeType' => array( + 'type' => 'string', + ), + 'Iops' => array( + 'type' => 'numeric', + ), + 'Encrypted' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + ), + ), + ), + 'NoDevice' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + 'CreateInstanceExportTask' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'CreateInstanceExportTaskResult', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'CreateInstanceExportTask', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'Description' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'InstanceId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'TargetEnvironment' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'ExportToS3Task' => array( + 'type' => 'object', + 'location' => 'aws.query', + 'sentAs' => 'ExportToS3', + 'properties' => array( + 'DiskImageFormat' => array( + 'type' => 'string', + ), + 'ContainerFormat' => array( + 'type' => 'string', + ), + 'S3Bucket' => array( + 'type' => 'string', + ), + 'S3Prefix' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + 'CreateInternetGateway' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'CreateInternetGatewayResult', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'CreateInternetGateway', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + ), + ), + 'CreateKeyPair' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'CreateKeyPairResult', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'CreateKeyPair', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'KeyName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + ), + 'CreateNetworkAcl' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'CreateNetworkAclResult', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'CreateNetworkAcl', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'VpcId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + ), + 'CreateNetworkAclEntry' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'EmptyOutput', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'CreateNetworkAclEntry', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'NetworkAclId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'RuleNumber' => array( + 'required' => true, + 'type' => 'numeric', + 'location' => 'aws.query', + ), + 'Protocol' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'RuleAction' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'Egress' => array( + 'required' => true, + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'CidrBlock' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'IcmpTypeCode' => array( + 'type' => 'object', + 'location' => 'aws.query', + 'sentAs' => 'Icmp', + 'properties' => array( + 'Type' => array( + 'type' => 'numeric', + ), + 'Code' => array( + 'type' => 'numeric', + ), + ), + ), + 'PortRange' => array( + 'type' => 'object', + 'location' => 'aws.query', + 'properties' => array( + 'From' => array( + 'type' => 'numeric', + ), + 'To' => array( + 'type' => 'numeric', + ), + ), + ), + ), + ), + 'CreateNetworkInterface' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'CreateNetworkInterfaceResult', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'CreateNetworkInterface', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'SubnetId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'Description' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'PrivateIpAddress' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'Groups' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'SecurityGroupId', + 'items' => array( + 'name' => 'SecurityGroupId', + 'type' => 'string', + ), + ), + 'PrivateIpAddresses' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'items' => array( + 'name' => 'PrivateIpAddressSpecification', + 'type' => 'object', + 'properties' => array( + 'PrivateIpAddress' => array( + 'required' => true, + 'type' => 'string', + ), + 'Primary' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + ), + ), + ), + ), + 'SecondaryPrivateIpAddressCount' => array( + 'type' => 'numeric', + 'location' => 'aws.query', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + ), + ), + 'CreatePlacementGroup' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'EmptyOutput', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'CreatePlacementGroup', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'GroupName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'Strategy' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + ), + 'CreateReservedInstancesListing' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'CreateReservedInstancesListingResult', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'CreateReservedInstancesListing', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'ReservedInstancesId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'InstanceCount' => array( + 'required' => true, + 'type' => 'numeric', + 'location' => 'aws.query', + ), + 'PriceSchedules' => array( + 'required' => true, + 'type' => 'array', + 'location' => 'aws.query', + 'items' => array( + 'name' => 'PriceScheduleSpecification', + 'type' => 'object', + 'properties' => array( + 'Term' => array( + 'type' => 'numeric', + ), + 'Price' => array( + 'type' => 'numeric', + ), + 'CurrencyCode' => array( + 'type' => 'string', + ), + ), + ), + ), + 'ClientToken' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + ), + 'CreateRoute' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'EmptyOutput', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'CreateRoute', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'RouteTableId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'DestinationCidrBlock' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'GatewayId' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'InstanceId' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'NetworkInterfaceId' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'VpcPeeringConnectionId' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + ), + 'CreateRouteTable' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'CreateRouteTableResult', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'CreateRouteTable', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'VpcId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + ), + 'CreateSecurityGroup' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'CreateSecurityGroupResult', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'CreateSecurityGroup', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'GroupName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'Description' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + 'sentAs' => 'GroupDescription', + ), + 'VpcId' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + ), + 'CreateSnapshot' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'snapshot', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'CreateSnapshot', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'VolumeId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'Description' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + ), + 'CreateSpotDatafeedSubscription' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'CreateSpotDatafeedSubscriptionResult', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'CreateSpotDatafeedSubscription', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'Bucket' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'Prefix' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + ), + 'CreateSubnet' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'CreateSubnetResult', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'CreateSubnet', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'VpcId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'CidrBlock' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'AvailabilityZone' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + ), + 'CreateTags' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'EmptyOutput', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'CreateTags', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'Resources' => array( + 'required' => true, + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'ResourceId', + 'items' => array( + 'name' => 'ResourceId', + 'type' => 'string', + ), + ), + 'Tags' => array( + 'required' => true, + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'Tag', + 'items' => array( + 'name' => 'Tag', + 'type' => 'object', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + ), + 'Value' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + 'CreateVolume' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'volume', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'CreateVolume', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'Size' => array( + 'type' => 'numeric', + 'location' => 'aws.query', + ), + 'SnapshotId' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'AvailabilityZone' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'VolumeType' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'Iops' => array( + 'type' => 'numeric', + 'location' => 'aws.query', + ), + 'Encrypted' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'KmsKeyId' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + ), + 'CreateVpc' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'CreateVpcResult', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'CreateVpc', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'CidrBlock' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'InstanceTenancy' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + ), + 'CreateVpcPeeringConnection' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'CreateVpcPeeringConnectionResult', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'CreateVpcPeeringConnection', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'VpcId' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'PeerVpcId' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'PeerOwnerId' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + ), + 'CreateVpnConnection' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'CreateVpnConnectionResult', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'CreateVpnConnection', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'Type' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'CustomerGatewayId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'VpnGatewayId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'Options' => array( + 'type' => 'object', + 'location' => 'aws.query', + 'properties' => array( + 'StaticRoutesOnly' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + ), + ), + ), + ), + ), + 'CreateVpnConnectionRoute' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'EmptyOutput', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'CreateVpnConnectionRoute', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'VpnConnectionId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'DestinationCidrBlock' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + ), + 'CreateVpnGateway' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'CreateVpnGatewayResult', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'CreateVpnGateway', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'Type' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'AvailabilityZone' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + ), + 'DeleteCustomerGateway' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'EmptyOutput', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DeleteCustomerGateway', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'CustomerGatewayId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + ), + 'DeleteDhcpOptions' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'EmptyOutput', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DeleteDhcpOptions', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'DhcpOptionsId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + ), + 'DeleteInternetGateway' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'EmptyOutput', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DeleteInternetGateway', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'InternetGatewayId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + ), + 'DeleteKeyPair' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'EmptyOutput', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DeleteKeyPair', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'KeyName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + ), + 'DeleteNetworkAcl' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'EmptyOutput', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DeleteNetworkAcl', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'NetworkAclId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + ), + 'DeleteNetworkAclEntry' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'EmptyOutput', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DeleteNetworkAclEntry', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'NetworkAclId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'RuleNumber' => array( + 'required' => true, + 'type' => 'numeric', + 'location' => 'aws.query', + ), + 'Egress' => array( + 'required' => true, + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + ), + ), + 'DeleteNetworkInterface' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'EmptyOutput', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DeleteNetworkInterface', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'NetworkInterfaceId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + ), + 'DeletePlacementGroup' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'EmptyOutput', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DeletePlacementGroup', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'GroupName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + ), + 'DeleteRoute' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'EmptyOutput', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DeleteRoute', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'RouteTableId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'DestinationCidrBlock' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + ), + 'DeleteRouteTable' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'EmptyOutput', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DeleteRouteTable', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'RouteTableId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + ), + 'DeleteSecurityGroup' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'EmptyOutput', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DeleteSecurityGroup', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'GroupName' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'GroupId' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + ), + 'DeleteSnapshot' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'EmptyOutput', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DeleteSnapshot', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'SnapshotId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + ), + 'DeleteSpotDatafeedSubscription' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'EmptyOutput', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DeleteSpotDatafeedSubscription', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + ), + ), + 'DeleteSubnet' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'EmptyOutput', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DeleteSubnet', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'SubnetId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + ), + 'DeleteTags' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'EmptyOutput', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DeleteTags', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'Resources' => array( + 'required' => true, + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'ResourceId', + 'items' => array( + 'name' => 'ResourceId', + 'type' => 'string', + ), + ), + 'Tags' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'Tag', + 'items' => array( + 'name' => 'Tag', + 'type' => 'object', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + ), + 'Value' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + 'DeleteVolume' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'EmptyOutput', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DeleteVolume', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'VolumeId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + ), + 'DeleteVpc' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'EmptyOutput', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DeleteVpc', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'VpcId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + ), + 'DeleteVpcPeeringConnection' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'DeleteVpcPeeringConnectionResult', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DeleteVpcPeeringConnection', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'VpcPeeringConnectionId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + ), + 'DeleteVpnConnection' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'EmptyOutput', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DeleteVpnConnection', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'VpnConnectionId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + ), + 'DeleteVpnConnectionRoute' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'EmptyOutput', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DeleteVpnConnectionRoute', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'VpnConnectionId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'DestinationCidrBlock' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + ), + 'DeleteVpnGateway' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'EmptyOutput', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DeleteVpnGateway', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'VpnGatewayId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + ), + 'DeregisterImage' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'EmptyOutput', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DeregisterImage', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'ImageId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + ), + 'DescribeAccountAttributes' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'DescribeAccountAttributesResult', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DescribeAccountAttributes', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'AttributeNames' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'AttributeName', + 'items' => array( + 'name' => 'AttributeName', + 'type' => 'string', + ), + ), + ), + ), + 'DescribeAddresses' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'DescribeAddressesResult', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DescribeAddresses', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'PublicIps' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'PublicIp', + 'items' => array( + 'name' => 'PublicIp', + 'type' => 'string', + ), + ), + 'Filters' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'Filter', + 'items' => array( + 'name' => 'Filter', + 'type' => 'object', + 'properties' => array( + 'Name' => array( + 'type' => 'string', + ), + 'Values' => array( + 'type' => 'array', + 'sentAs' => 'Value', + 'items' => array( + 'name' => 'Value', + 'type' => 'string', + ), + ), + ), + ), + ), + 'AllocationIds' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'AllocationId', + 'items' => array( + 'name' => 'AllocationId', + 'type' => 'string', + ), + ), + ), + ), + 'DescribeAvailabilityZones' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'DescribeAvailabilityZonesResult', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DescribeAvailabilityZones', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'ZoneNames' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'ZoneName', + 'items' => array( + 'name' => 'ZoneName', + 'type' => 'string', + ), + ), + 'Filters' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'Filter', + 'items' => array( + 'name' => 'Filter', + 'type' => 'object', + 'properties' => array( + 'Name' => array( + 'type' => 'string', + ), + 'Values' => array( + 'type' => 'array', + 'sentAs' => 'Value', + 'items' => array( + 'name' => 'Value', + 'type' => 'string', + ), + ), + ), + ), + ), + ), + ), + 'DescribeBundleTasks' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'DescribeBundleTasksResult', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DescribeBundleTasks', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'BundleIds' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'BundleId', + 'items' => array( + 'name' => 'BundleId', + 'type' => 'string', + ), + ), + 'Filters' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'Filter', + 'items' => array( + 'name' => 'Filter', + 'type' => 'object', + 'properties' => array( + 'Name' => array( + 'type' => 'string', + ), + 'Values' => array( + 'type' => 'array', + 'sentAs' => 'Value', + 'items' => array( + 'name' => 'Value', + 'type' => 'string', + ), + ), + ), + ), + ), + ), + ), + 'DescribeClassicLinkInstances' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'DescribeClassicLinkInstancesResult', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DescribeClassicLinkInstances', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'InstanceIds' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'InstanceId', + 'items' => array( + 'name' => 'InstanceId', + 'type' => 'string', + ), + ), + 'Filters' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'Filter', + 'items' => array( + 'name' => 'Filter', + 'type' => 'object', + 'properties' => array( + 'Name' => array( + 'type' => 'string', + ), + 'Values' => array( + 'type' => 'array', + 'sentAs' => 'Value', + 'items' => array( + 'name' => 'Value', + 'type' => 'string', + ), + ), + ), + ), + ), + 'NextToken' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'MaxResults' => array( + 'type' => 'numeric', + 'location' => 'aws.query', + ), + ), + ), + 'DescribeConversionTasks' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'DescribeConversionTasksResult', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DescribeConversionTasks', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'Filters' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'Filter', + 'items' => array( + 'name' => 'Filter', + 'type' => 'object', + 'properties' => array( + 'Name' => array( + 'type' => 'string', + ), + 'Values' => array( + 'type' => 'array', + 'sentAs' => 'Value', + 'items' => array( + 'name' => 'Value', + 'type' => 'string', + ), + ), + ), + ), + ), + 'ConversionTaskIds' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'ConversionTaskId', + 'items' => array( + 'name' => 'ConversionTaskId', + 'type' => 'string', + ), + ), + ), + ), + 'DescribeCustomerGateways' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'DescribeCustomerGatewaysResult', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DescribeCustomerGateways', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'CustomerGatewayIds' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'CustomerGatewayId', + 'items' => array( + 'name' => 'CustomerGatewayId', + 'type' => 'string', + ), + ), + 'Filters' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'Filter', + 'items' => array( + 'name' => 'Filter', + 'type' => 'object', + 'properties' => array( + 'Name' => array( + 'type' => 'string', + ), + 'Values' => array( + 'type' => 'array', + 'sentAs' => 'Value', + 'items' => array( + 'name' => 'Value', + 'type' => 'string', + ), + ), + ), + ), + ), + ), + ), + 'DescribeDhcpOptions' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'DescribeDhcpOptionsResult', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DescribeDhcpOptions', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'DhcpOptionsIds' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'DhcpOptionsId', + 'items' => array( + 'name' => 'DhcpOptionsId', + 'type' => 'string', + ), + ), + 'Filters' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'Filter', + 'items' => array( + 'name' => 'Filter', + 'type' => 'object', + 'properties' => array( + 'Name' => array( + 'type' => 'string', + ), + 'Values' => array( + 'type' => 'array', + 'sentAs' => 'Value', + 'items' => array( + 'name' => 'Value', + 'type' => 'string', + ), + ), + ), + ), + ), + ), + ), + 'DescribeExportTasks' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'DescribeExportTasksResult', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DescribeExportTasks', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'ExportTaskIds' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'ExportTaskId', + 'items' => array( + 'name' => 'ExportTaskId', + 'type' => 'string', + ), + ), + ), + ), + 'DescribeImageAttribute' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'imageAttribute', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DescribeImageAttribute', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'ImageId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'Attribute' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + ), + 'DescribeImages' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'DescribeImagesResult', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DescribeImages', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'ImageIds' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'ImageId', + 'items' => array( + 'name' => 'ImageId', + 'type' => 'string', + ), + ), + 'Owners' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'Owner', + 'items' => array( + 'name' => 'Owner', + 'type' => 'string', + ), + ), + 'ExecutableUsers' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'ExecutableBy', + 'items' => array( + 'name' => 'ExecutableBy', + 'type' => 'string', + ), + ), + 'Filters' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'Filter', + 'items' => array( + 'name' => 'Filter', + 'type' => 'object', + 'properties' => array( + 'Name' => array( + 'type' => 'string', + ), + 'Values' => array( + 'type' => 'array', + 'sentAs' => 'Value', + 'items' => array( + 'name' => 'Value', + 'type' => 'string', + ), + ), + ), + ), + ), + ), + ), + 'DescribeImportImageTasks' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'DescribeImportImageTasksResult', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DescribeImportImageTasks', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'ImportTaskIds' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'ImportTaskId', + 'items' => array( + 'name' => 'ImportTaskId', + 'type' => 'string', + ), + ), + 'NextToken' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'MaxResults' => array( + 'type' => 'numeric', + 'location' => 'aws.query', + ), + 'Filters' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'items' => array( + 'name' => 'Filter', + 'type' => 'object', + 'properties' => array( + 'Name' => array( + 'type' => 'string', + ), + 'Values' => array( + 'type' => 'array', + 'sentAs' => 'Value', + 'items' => array( + 'name' => 'Value', + 'type' => 'string', + ), + ), + ), + ), + ), + ), + ), + 'DescribeImportSnapshotTasks' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'DescribeImportSnapshotTasksResult', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DescribeImportSnapshotTasks', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'ImportTaskIds' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'ImportTaskId', + 'items' => array( + 'name' => 'ImportTaskId', + 'type' => 'string', + ), + ), + 'NextToken' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'MaxResults' => array( + 'type' => 'numeric', + 'location' => 'aws.query', + ), + 'Filters' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'items' => array( + 'name' => 'Filter', + 'type' => 'object', + 'properties' => array( + 'Name' => array( + 'type' => 'string', + ), + 'Values' => array( + 'type' => 'array', + 'sentAs' => 'Value', + 'items' => array( + 'name' => 'Value', + 'type' => 'string', + ), + ), + ), + ), + ), + ), + ), + 'DescribeInstanceAttribute' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'InstanceAttribute', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DescribeInstanceAttribute', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'InstanceId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'Attribute' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + ), + 'DescribeInstanceStatus' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'DescribeInstanceStatusResult', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DescribeInstanceStatus', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'InstanceIds' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'InstanceId', + 'items' => array( + 'name' => 'InstanceId', + 'type' => 'string', + ), + ), + 'Filters' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'Filter', + 'items' => array( + 'name' => 'Filter', + 'type' => 'object', + 'properties' => array( + 'Name' => array( + 'type' => 'string', + ), + 'Values' => array( + 'type' => 'array', + 'sentAs' => 'Value', + 'items' => array( + 'name' => 'Value', + 'type' => 'string', + ), + ), + ), + ), + ), + 'NextToken' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'MaxResults' => array( + 'type' => 'numeric', + 'location' => 'aws.query', + ), + 'IncludeAllInstances' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + ), + ), + 'DescribeInstances' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'DescribeInstancesResult', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DescribeInstances', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'InstanceIds' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'InstanceId', + 'items' => array( + 'name' => 'InstanceId', + 'type' => 'string', + ), + ), + 'Filters' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'Filter', + 'items' => array( + 'name' => 'Filter', + 'type' => 'object', + 'properties' => array( + 'Name' => array( + 'type' => 'string', + ), + 'Values' => array( + 'type' => 'array', + 'sentAs' => 'Value', + 'items' => array( + 'name' => 'Value', + 'type' => 'string', + ), + ), + ), + ), + ), + 'NextToken' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'MaxResults' => array( + 'type' => 'numeric', + 'location' => 'aws.query', + ), + ), + ), + 'DescribeInternetGateways' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'DescribeInternetGatewaysResult', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DescribeInternetGateways', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'InternetGatewayIds' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'InternetGatewayId', + 'items' => array( + 'name' => 'InternetGatewayId', + 'type' => 'string', + ), + ), + 'Filters' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'Filter', + 'items' => array( + 'name' => 'Filter', + 'type' => 'object', + 'properties' => array( + 'Name' => array( + 'type' => 'string', + ), + 'Values' => array( + 'type' => 'array', + 'sentAs' => 'Value', + 'items' => array( + 'name' => 'Value', + 'type' => 'string', + ), + ), + ), + ), + ), + ), + ), + 'DescribeKeyPairs' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'DescribeKeyPairsResult', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DescribeKeyPairs', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'KeyNames' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'KeyName', + 'items' => array( + 'name' => 'KeyName', + 'type' => 'string', + ), + ), + 'Filters' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'Filter', + 'items' => array( + 'name' => 'Filter', + 'type' => 'object', + 'properties' => array( + 'Name' => array( + 'type' => 'string', + ), + 'Values' => array( + 'type' => 'array', + 'sentAs' => 'Value', + 'items' => array( + 'name' => 'Value', + 'type' => 'string', + ), + ), + ), + ), + ), + ), + ), + 'DescribeNetworkAcls' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'DescribeNetworkAclsResult', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DescribeNetworkAcls', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'NetworkAclIds' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'NetworkAclId', + 'items' => array( + 'name' => 'NetworkAclId', + 'type' => 'string', + ), + ), + 'Filters' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'Filter', + 'items' => array( + 'name' => 'Filter', + 'type' => 'object', + 'properties' => array( + 'Name' => array( + 'type' => 'string', + ), + 'Values' => array( + 'type' => 'array', + 'sentAs' => 'Value', + 'items' => array( + 'name' => 'Value', + 'type' => 'string', + ), + ), + ), + ), + ), + ), + ), + 'DescribeNetworkInterfaceAttribute' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'DescribeNetworkInterfaceAttributeResult', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DescribeNetworkInterfaceAttribute', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'NetworkInterfaceId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'Attribute' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + ), + 'DescribeNetworkInterfaces' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'DescribeNetworkInterfacesResult', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DescribeNetworkInterfaces', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'NetworkInterfaceIds' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'NetworkInterfaceId', + 'items' => array( + 'name' => 'NetworkInterfaceId', + 'type' => 'string', + ), + ), + 'Filters' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'Filter', + 'items' => array( + 'name' => 'Filter', + 'type' => 'object', + 'properties' => array( + 'Name' => array( + 'type' => 'string', + ), + 'Values' => array( + 'type' => 'array', + 'sentAs' => 'Value', + 'items' => array( + 'name' => 'Value', + 'type' => 'string', + ), + ), + ), + ), + ), + ), + ), + 'DescribePlacementGroups' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'DescribePlacementGroupsResult', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DescribePlacementGroups', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'GroupNames' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'GroupName', + 'items' => array( + 'name' => 'GroupName', + 'type' => 'string', + ), + ), + 'Filters' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'Filter', + 'items' => array( + 'name' => 'Filter', + 'type' => 'object', + 'properties' => array( + 'Name' => array( + 'type' => 'string', + ), + 'Values' => array( + 'type' => 'array', + 'sentAs' => 'Value', + 'items' => array( + 'name' => 'Value', + 'type' => 'string', + ), + ), + ), + ), + ), + ), + ), + 'DescribeRegions' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'DescribeRegionsResult', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DescribeRegions', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'RegionNames' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'RegionName', + 'items' => array( + 'name' => 'RegionName', + 'type' => 'string', + ), + ), + 'Filters' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'Filter', + 'items' => array( + 'name' => 'Filter', + 'type' => 'object', + 'properties' => array( + 'Name' => array( + 'type' => 'string', + ), + 'Values' => array( + 'type' => 'array', + 'sentAs' => 'Value', + 'items' => array( + 'name' => 'Value', + 'type' => 'string', + ), + ), + ), + ), + ), + ), + ), + 'DescribeReservedInstances' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'DescribeReservedInstancesResult', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DescribeReservedInstances', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'ReservedInstancesIds' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'ReservedInstancesId', + 'items' => array( + 'name' => 'ReservedInstancesId', + 'type' => 'string', + ), + ), + 'Filters' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'Filter', + 'items' => array( + 'name' => 'Filter', + 'type' => 'object', + 'properties' => array( + 'Name' => array( + 'type' => 'string', + ), + 'Values' => array( + 'type' => 'array', + 'sentAs' => 'Value', + 'items' => array( + 'name' => 'Value', + 'type' => 'string', + ), + ), + ), + ), + ), + 'OfferingType' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + ), + 'DescribeReservedInstancesListings' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'DescribeReservedInstancesListingsResult', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DescribeReservedInstancesListings', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'ReservedInstancesId' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'ReservedInstancesListingId' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'Filters' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'items' => array( + 'name' => 'Filter', + 'type' => 'object', + 'properties' => array( + 'Name' => array( + 'type' => 'string', + ), + 'Values' => array( + 'type' => 'array', + 'sentAs' => 'Value', + 'items' => array( + 'name' => 'Value', + 'type' => 'string', + ), + ), + ), + ), + ), + ), + ), + 'DescribeReservedInstancesModifications' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'DescribeReservedInstancesModificationsResult', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DescribeReservedInstancesModifications', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'ReservedInstancesModificationIds' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'ReservedInstancesModificationId', + 'items' => array( + 'name' => 'ReservedInstancesModificationId', + 'type' => 'string', + ), + ), + 'NextToken' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'Filters' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'Filter', + 'items' => array( + 'name' => 'Filter', + 'type' => 'object', + 'properties' => array( + 'Name' => array( + 'type' => 'string', + ), + 'Values' => array( + 'type' => 'array', + 'sentAs' => 'Value', + 'items' => array( + 'name' => 'Value', + 'type' => 'string', + ), + ), + ), + ), + ), + ), + ), + 'DescribeReservedInstancesOfferings' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'DescribeReservedInstancesOfferingsResult', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DescribeReservedInstancesOfferings', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'ReservedInstancesOfferingIds' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'ReservedInstancesOfferingId', + 'items' => array( + 'name' => 'ReservedInstancesOfferingId', + 'type' => 'string', + ), + ), + 'InstanceType' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'AvailabilityZone' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'ProductDescription' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'Filters' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'Filter', + 'items' => array( + 'name' => 'Filter', + 'type' => 'object', + 'properties' => array( + 'Name' => array( + 'type' => 'string', + ), + 'Values' => array( + 'type' => 'array', + 'sentAs' => 'Value', + 'items' => array( + 'name' => 'Value', + 'type' => 'string', + ), + ), + ), + ), + ), + 'InstanceTenancy' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'OfferingType' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'NextToken' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'MaxResults' => array( + 'type' => 'numeric', + 'location' => 'aws.query', + ), + 'IncludeMarketplace' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'MinDuration' => array( + 'type' => 'numeric', + 'location' => 'aws.query', + ), + 'MaxDuration' => array( + 'type' => 'numeric', + 'location' => 'aws.query', + ), + 'MaxInstanceCount' => array( + 'type' => 'numeric', + 'location' => 'aws.query', + ), + ), + ), + 'DescribeRouteTables' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'DescribeRouteTablesResult', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DescribeRouteTables', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'RouteTableIds' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'RouteTableId', + 'items' => array( + 'name' => 'RouteTableId', + 'type' => 'string', + ), + ), + 'Filters' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'Filter', + 'items' => array( + 'name' => 'Filter', + 'type' => 'object', + 'properties' => array( + 'Name' => array( + 'type' => 'string', + ), + 'Values' => array( + 'type' => 'array', + 'sentAs' => 'Value', + 'items' => array( + 'name' => 'Value', + 'type' => 'string', + ), + ), + ), + ), + ), + ), + ), + 'DescribeSecurityGroups' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'DescribeSecurityGroupsResult', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DescribeSecurityGroups', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'GroupNames' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'GroupName', + 'items' => array( + 'name' => 'GroupName', + 'type' => 'string', + ), + ), + 'GroupIds' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'GroupId', + 'items' => array( + 'name' => 'GroupId', + 'type' => 'string', + ), + ), + 'Filters' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'Filter', + 'items' => array( + 'name' => 'Filter', + 'type' => 'object', + 'properties' => array( + 'Name' => array( + 'type' => 'string', + ), + 'Values' => array( + 'type' => 'array', + 'sentAs' => 'Value', + 'items' => array( + 'name' => 'Value', + 'type' => 'string', + ), + ), + ), + ), + ), + ), + ), + 'DescribeSnapshotAttribute' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'DescribeSnapshotAttributeResult', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DescribeSnapshotAttribute', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'SnapshotId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'Attribute' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + ), + 'DescribeSnapshots' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'DescribeSnapshotsResult', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DescribeSnapshots', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'SnapshotIds' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'SnapshotId', + 'items' => array( + 'name' => 'SnapshotId', + 'type' => 'string', + ), + ), + 'OwnerIds' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'Owner', + 'items' => array( + 'name' => 'Owner', + 'type' => 'string', + ), + ), + 'RestorableByUserIds' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'RestorableBy', + 'items' => array( + 'name' => 'RestorableBy', + 'type' => 'string', + ), + ), + 'Filters' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'Filter', + 'items' => array( + 'name' => 'Filter', + 'type' => 'object', + 'properties' => array( + 'Name' => array( + 'type' => 'string', + ), + 'Values' => array( + 'type' => 'array', + 'sentAs' => 'Value', + 'items' => array( + 'name' => 'Value', + 'type' => 'string', + ), + ), + ), + ), + ), + 'NextToken' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'MaxResults' => array( + 'type' => 'numeric', + 'location' => 'aws.query', + ), + ), + ), + 'DescribeSpotDatafeedSubscription' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'DescribeSpotDatafeedSubscriptionResult', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DescribeSpotDatafeedSubscription', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + ), + ), + 'DescribeSpotInstanceRequests' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'DescribeSpotInstanceRequestsResult', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DescribeSpotInstanceRequests', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'SpotInstanceRequestIds' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'SpotInstanceRequestId', + 'items' => array( + 'name' => 'SpotInstanceRequestId', + 'type' => 'string', + ), + ), + 'Filters' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'Filter', + 'items' => array( + 'name' => 'Filter', + 'type' => 'object', + 'properties' => array( + 'Name' => array( + 'type' => 'string', + ), + 'Values' => array( + 'type' => 'array', + 'sentAs' => 'Value', + 'items' => array( + 'name' => 'Value', + 'type' => 'string', + ), + ), + ), + ), + ), + ), + ), + 'DescribeSpotPriceHistory' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'DescribeSpotPriceHistoryResult', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DescribeSpotPriceHistory', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'StartTime' => array( + 'type' => array( + 'object', + 'string', + 'integer', + ), + 'format' => 'date-time', + 'location' => 'aws.query', + ), + 'EndTime' => array( + 'type' => array( + 'object', + 'string', + 'integer', + ), + 'format' => 'date-time', + 'location' => 'aws.query', + ), + 'InstanceTypes' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'InstanceType', + 'items' => array( + 'name' => 'InstanceType', + 'type' => 'string', + ), + ), + 'ProductDescriptions' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'ProductDescription', + 'items' => array( + 'name' => 'ProductDescription', + 'type' => 'string', + ), + ), + 'Filters' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'Filter', + 'items' => array( + 'name' => 'Filter', + 'type' => 'object', + 'properties' => array( + 'Name' => array( + 'type' => 'string', + ), + 'Values' => array( + 'type' => 'array', + 'sentAs' => 'Value', + 'items' => array( + 'name' => 'Value', + 'type' => 'string', + ), + ), + ), + ), + ), + 'AvailabilityZone' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'MaxResults' => array( + 'type' => 'numeric', + 'location' => 'aws.query', + ), + 'NextToken' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + ), + 'DescribeSubnets' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'DescribeSubnetsResult', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DescribeSubnets', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'SubnetIds' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'SubnetId', + 'items' => array( + 'name' => 'SubnetId', + 'type' => 'string', + ), + ), + 'Filters' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'Filter', + 'items' => array( + 'name' => 'Filter', + 'type' => 'object', + 'properties' => array( + 'Name' => array( + 'type' => 'string', + ), + 'Values' => array( + 'type' => 'array', + 'sentAs' => 'Value', + 'items' => array( + 'name' => 'Value', + 'type' => 'string', + ), + ), + ), + ), + ), + ), + ), + 'DescribeTags' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'DescribeTagsResult', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DescribeTags', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'Filters' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'Filter', + 'items' => array( + 'name' => 'Filter', + 'type' => 'object', + 'properties' => array( + 'Name' => array( + 'type' => 'string', + ), + 'Values' => array( + 'type' => 'array', + 'sentAs' => 'Value', + 'items' => array( + 'name' => 'Value', + 'type' => 'string', + ), + ), + ), + ), + ), + 'MaxResults' => array( + 'type' => 'numeric', + 'location' => 'aws.query', + ), + 'NextToken' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + ), + 'DescribeVolumeAttribute' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'DescribeVolumeAttributeResult', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DescribeVolumeAttribute', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'VolumeId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'Attribute' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + ), + 'DescribeVolumeStatus' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'DescribeVolumeStatusResult', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DescribeVolumeStatus', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'VolumeIds' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'VolumeId', + 'items' => array( + 'name' => 'VolumeId', + 'type' => 'string', + ), + ), + 'Filters' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'Filter', + 'items' => array( + 'name' => 'Filter', + 'type' => 'object', + 'properties' => array( + 'Name' => array( + 'type' => 'string', + ), + 'Values' => array( + 'type' => 'array', + 'sentAs' => 'Value', + 'items' => array( + 'name' => 'Value', + 'type' => 'string', + ), + ), + ), + ), + ), + 'NextToken' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'MaxResults' => array( + 'type' => 'numeric', + 'location' => 'aws.query', + ), + ), + ), + 'DescribeVolumes' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'DescribeVolumesResult', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DescribeVolumes', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'VolumeIds' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'VolumeId', + 'items' => array( + 'name' => 'VolumeId', + 'type' => 'string', + ), + ), + 'Filters' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'Filter', + 'items' => array( + 'name' => 'Filter', + 'type' => 'object', + 'properties' => array( + 'Name' => array( + 'type' => 'string', + ), + 'Values' => array( + 'type' => 'array', + 'sentAs' => 'Value', + 'items' => array( + 'name' => 'Value', + 'type' => 'string', + ), + ), + ), + ), + ), + 'NextToken' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'MaxResults' => array( + 'type' => 'numeric', + 'location' => 'aws.query', + ), + ), + ), + 'DescribeVpcAttribute' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'DescribeVpcAttributeResult', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DescribeVpcAttribute', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'VpcId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'Attribute' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + ), + 'DescribeVpcClassicLink' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'DescribeVpcClassicLinkResult', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DescribeVpcClassicLink', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'VpcIds' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'VpcId', + 'items' => array( + 'name' => 'VpcId', + 'type' => 'string', + ), + ), + 'Filters' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'Filter', + 'items' => array( + 'name' => 'Filter', + 'type' => 'object', + 'properties' => array( + 'Name' => array( + 'type' => 'string', + ), + 'Values' => array( + 'type' => 'array', + 'sentAs' => 'Value', + 'items' => array( + 'name' => 'Value', + 'type' => 'string', + ), + ), + ), + ), + ), + ), + ), + 'DescribeVpcPeeringConnections' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'DescribeVpcPeeringConnectionsResult', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DescribeVpcPeeringConnections', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'VpcPeeringConnectionIds' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'VpcPeeringConnectionId', + 'items' => array( + 'name' => 'VpcPeeringConnectionId', + 'type' => 'string', + ), + ), + 'Filters' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'Filter', + 'items' => array( + 'name' => 'Filter', + 'type' => 'object', + 'properties' => array( + 'Name' => array( + 'type' => 'string', + ), + 'Values' => array( + 'type' => 'array', + 'sentAs' => 'Value', + 'items' => array( + 'name' => 'Value', + 'type' => 'string', + ), + ), + ), + ), + ), + ), + ), + 'DescribeVpcs' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'DescribeVpcsResult', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DescribeVpcs', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'VpcIds' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'VpcId', + 'items' => array( + 'name' => 'VpcId', + 'type' => 'string', + ), + ), + 'Filters' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'Filter', + 'items' => array( + 'name' => 'Filter', + 'type' => 'object', + 'properties' => array( + 'Name' => array( + 'type' => 'string', + ), + 'Values' => array( + 'type' => 'array', + 'sentAs' => 'Value', + 'items' => array( + 'name' => 'Value', + 'type' => 'string', + ), + ), + ), + ), + ), + ), + ), + 'DescribeVpnConnections' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'DescribeVpnConnectionsResult', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DescribeVpnConnections', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'VpnConnectionIds' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'VpnConnectionId', + 'items' => array( + 'name' => 'VpnConnectionId', + 'type' => 'string', + ), + ), + 'Filters' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'Filter', + 'items' => array( + 'name' => 'Filter', + 'type' => 'object', + 'properties' => array( + 'Name' => array( + 'type' => 'string', + ), + 'Values' => array( + 'type' => 'array', + 'sentAs' => 'Value', + 'items' => array( + 'name' => 'Value', + 'type' => 'string', + ), + ), + ), + ), + ), + ), + ), + 'DescribeVpnGateways' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'DescribeVpnGatewaysResult', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DescribeVpnGateways', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'VpnGatewayIds' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'VpnGatewayId', + 'items' => array( + 'name' => 'VpnGatewayId', + 'type' => 'string', + ), + ), + 'Filters' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'Filter', + 'items' => array( + 'name' => 'Filter', + 'type' => 'object', + 'properties' => array( + 'Name' => array( + 'type' => 'string', + ), + 'Values' => array( + 'type' => 'array', + 'sentAs' => 'Value', + 'items' => array( + 'name' => 'Value', + 'type' => 'string', + ), + ), + ), + ), + ), + ), + ), + 'DetachClassicLinkVpc' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'DetachClassicLinkVpcResult', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DetachClassicLinkVpc', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'InstanceId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'VpcId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + ), + 'DetachInternetGateway' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'EmptyOutput', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DetachInternetGateway', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'InternetGatewayId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'VpcId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + ), + 'DetachNetworkInterface' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'EmptyOutput', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DetachNetworkInterface', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'AttachmentId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'Force' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + ), + ), + 'DetachVolume' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'attachment', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DetachVolume', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'VolumeId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'InstanceId' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'Device' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'Force' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + ), + ), + 'DetachVpnGateway' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'EmptyOutput', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DetachVpnGateway', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'VpnGatewayId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'VpcId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + ), + 'DisableVgwRoutePropagation' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'EmptyOutput', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DisableVgwRoutePropagation', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'RouteTableId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'GatewayId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + ), + 'DisableVpcClassicLink' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'DisableVpcClassicLinkResult', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DisableVpcClassicLink', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'VpcId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + ), + 'DisassociateAddress' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'EmptyOutput', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DisassociateAddress', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'PublicIp' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'AssociationId' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + ), + 'DisassociateRouteTable' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'EmptyOutput', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DisassociateRouteTable', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'AssociationId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + ), + 'EnableVgwRoutePropagation' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'EmptyOutput', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'EnableVgwRoutePropagation', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'RouteTableId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'GatewayId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + ), + 'EnableVolumeIO' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'EmptyOutput', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'EnableVolumeIO', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'VolumeId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + ), + 'EnableVpcClassicLink' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'EnableVpcClassicLinkResult', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'EnableVpcClassicLink', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'VpcId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + ), + 'GetConsoleOutput' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'GetConsoleOutputResult', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'GetConsoleOutput', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'InstanceId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + ), + 'GetPasswordData' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'GetPasswordDataResult', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'GetPasswordData', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'InstanceId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + ), + 'ImportImage' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'ImportImageResult', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'ImportImage', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'Description' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'DiskContainers' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'DiskContainer', + 'items' => array( + 'name' => 'DiskContainer', + 'type' => 'object', + 'properties' => array( + 'Description' => array( + 'type' => 'string', + ), + 'Format' => array( + 'type' => 'string', + ), + 'Url' => array( + 'type' => 'string', + ), + 'UserBucket' => array( + 'type' => 'object', + 'properties' => array( + 'S3Bucket' => array( + 'type' => 'string', + ), + 'S3Key' => array( + 'type' => 'string', + ), + ), + ), + 'DeviceName' => array( + 'type' => 'string', + ), + 'SnapshotId' => array( + 'type' => 'string', + ), + ), + ), + ), + 'LicenseType' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'Hypervisor' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'Architecture' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'Platform' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'ClientData' => array( + 'type' => 'object', + 'location' => 'aws.query', + 'properties' => array( + 'UploadStart' => array( + 'type' => array( + 'object', + 'string', + 'integer', + ), + 'format' => 'date-time', + ), + 'UploadEnd' => array( + 'type' => array( + 'object', + 'string', + 'integer', + ), + 'format' => 'date-time', + ), + 'UploadSize' => array( + 'type' => 'numeric', + ), + 'Comment' => array( + 'type' => 'string', + ), + ), + ), + 'ClientToken' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'RoleName' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + ), + 'ImportInstance' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'ImportInstanceResult', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'ImportInstance', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'Description' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'LaunchSpecification' => array( + 'type' => 'object', + 'location' => 'aws.query', + 'properties' => array( + 'Architecture' => array( + 'type' => 'string', + ), + 'GroupNames' => array( + 'type' => 'array', + 'sentAs' => 'GroupName', + 'items' => array( + 'name' => 'GroupName', + 'type' => 'string', + ), + ), + 'GroupIds' => array( + 'type' => 'array', + 'sentAs' => 'GroupId', + 'items' => array( + 'name' => 'GroupId', + 'type' => 'string', + ), + ), + 'AdditionalInfo' => array( + 'type' => 'string', + ), + 'UserData' => array( + 'type' => 'object', + 'properties' => array( + 'Data' => array( + 'type' => 'string', + ), + ), + ), + 'InstanceType' => array( + 'type' => 'string', + ), + 'Placement' => array( + 'type' => 'object', + 'properties' => array( + 'AvailabilityZone' => array( + 'type' => 'string', + ), + 'GroupName' => array( + 'type' => 'string', + ), + 'Tenancy' => array( + 'type' => 'string', + ), + ), + ), + 'Monitoring' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + ), + 'SubnetId' => array( + 'type' => 'string', + ), + 'InstanceInitiatedShutdownBehavior' => array( + 'type' => 'string', + ), + 'PrivateIpAddress' => array( + 'type' => 'string', + ), + ), + ), + 'DiskImages' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'DiskImage', + 'items' => array( + 'name' => 'DiskImage', + 'type' => 'object', + 'properties' => array( + 'Image' => array( + 'type' => 'object', + 'properties' => array( + 'Format' => array( + 'required' => true, + 'type' => 'string', + ), + 'Bytes' => array( + 'required' => true, + 'type' => 'numeric', + ), + 'ImportManifestUrl' => array( + 'required' => true, + 'type' => 'string', + ), + ), + ), + 'Description' => array( + 'type' => 'string', + ), + 'Volume' => array( + 'type' => 'object', + 'properties' => array( + 'Size' => array( + 'required' => true, + 'type' => 'numeric', + ), + ), + ), + ), + ), + ), + 'Platform' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + ), + 'ImportKeyPair' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'ImportKeyPairResult', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'ImportKeyPair', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'KeyName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'PublicKeyMaterial' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + 'filters' => array( + 'base64_encode', + ), + ), + ), + ), + 'ImportSnapshot' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'ImportSnapshotResult', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'ImportSnapshot', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'Description' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'DiskContainer' => array( + 'type' => 'object', + 'location' => 'aws.query', + 'properties' => array( + 'Description' => array( + 'type' => 'string', + ), + 'Format' => array( + 'type' => 'string', + ), + 'Url' => array( + 'type' => 'string', + ), + 'UserBucket' => array( + 'type' => 'object', + 'properties' => array( + 'S3Bucket' => array( + 'type' => 'string', + ), + 'S3Key' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + 'ClientData' => array( + 'type' => 'object', + 'location' => 'aws.query', + 'properties' => array( + 'UploadStart' => array( + 'type' => array( + 'object', + 'string', + 'integer', + ), + 'format' => 'date-time', + ), + 'UploadEnd' => array( + 'type' => array( + 'object', + 'string', + 'integer', + ), + 'format' => 'date-time', + ), + 'UploadSize' => array( + 'type' => 'numeric', + ), + 'Comment' => array( + 'type' => 'string', + ), + ), + ), + 'ClientToken' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'RoleName' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + ), + 'ImportVolume' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'ImportVolumeResult', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'ImportVolume', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'AvailabilityZone' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'Image' => array( + 'required' => true, + 'type' => 'object', + 'location' => 'aws.query', + 'properties' => array( + 'Format' => array( + 'required' => true, + 'type' => 'string', + ), + 'Bytes' => array( + 'required' => true, + 'type' => 'numeric', + ), + 'ImportManifestUrl' => array( + 'required' => true, + 'type' => 'string', + ), + ), + ), + 'Description' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'Volume' => array( + 'required' => true, + 'type' => 'object', + 'location' => 'aws.query', + 'properties' => array( + 'Size' => array( + 'required' => true, + 'type' => 'numeric', + ), + ), + ), + ), + ), + 'ModifyImageAttribute' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'EmptyOutput', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'ModifyImageAttribute', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'ImageId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'Attribute' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'OperationType' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'UserIds' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'UserId', + 'items' => array( + 'name' => 'UserId', + 'type' => 'string', + ), + ), + 'UserGroups' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'UserGroup', + 'items' => array( + 'name' => 'UserGroup', + 'type' => 'string', + ), + ), + 'ProductCodes' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'ProductCode', + 'items' => array( + 'name' => 'ProductCode', + 'type' => 'string', + ), + ), + 'Value' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'LaunchPermission' => array( + 'type' => 'object', + 'location' => 'aws.query', + 'properties' => array( + 'Add' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'LaunchPermission', + 'type' => 'object', + 'properties' => array( + 'UserId' => array( + 'type' => 'string', + ), + 'Group' => array( + 'type' => 'string', + ), + ), + ), + ), + 'Remove' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'LaunchPermission', + 'type' => 'object', + 'properties' => array( + 'UserId' => array( + 'type' => 'string', + ), + 'Group' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + 'Description' => array( + 'type' => 'object', + 'location' => 'aws.query', + 'properties' => array( + 'Value' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + 'ModifyInstanceAttribute' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'EmptyOutput', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'ModifyInstanceAttribute', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'InstanceId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'Attribute' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'Value' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'BlockDeviceMappings' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'BlockDeviceMapping', + 'items' => array( + 'name' => 'BlockDeviceMapping', + 'type' => 'object', + 'properties' => array( + 'DeviceName' => array( + 'type' => 'string', + ), + 'Ebs' => array( + 'type' => 'object', + 'properties' => array( + 'VolumeId' => array( + 'type' => 'string', + ), + 'DeleteOnTermination' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + ), + ), + ), + 'VirtualName' => array( + 'type' => 'string', + ), + 'NoDevice' => array( + 'type' => 'string', + ), + ), + ), + ), + 'SourceDestCheck' => array( + 'type' => 'object', + 'location' => 'aws.query', + 'properties' => array( + 'Value' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + ), + ), + ), + 'DisableApiTermination' => array( + 'type' => 'object', + 'location' => 'aws.query', + 'properties' => array( + 'Value' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + ), + ), + ), + 'InstanceType' => array( + 'type' => 'object', + 'location' => 'aws.query', + 'properties' => array( + 'Value' => array( + 'type' => 'string', + ), + ), + ), + 'Kernel' => array( + 'type' => 'object', + 'location' => 'aws.query', + 'properties' => array( + 'Value' => array( + 'type' => 'string', + ), + ), + ), + 'Ramdisk' => array( + 'type' => 'object', + 'location' => 'aws.query', + 'properties' => array( + 'Value' => array( + 'type' => 'string', + ), + ), + ), + 'UserData' => array( + 'type' => 'object', + 'location' => 'aws.query', + 'properties' => array( + 'Value' => array( + 'type' => 'string', + ), + ), + ), + 'InstanceInitiatedShutdownBehavior' => array( + 'type' => 'object', + 'location' => 'aws.query', + 'properties' => array( + 'Value' => array( + 'type' => 'string', + ), + ), + ), + 'Groups' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'GroupId', + 'items' => array( + 'name' => 'GroupId', + 'type' => 'string', + ), + ), + 'EbsOptimized' => array( + 'type' => 'object', + 'location' => 'aws.query', + 'properties' => array( + 'Value' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + ), + ), + ), + 'SriovNetSupport' => array( + 'type' => 'object', + 'location' => 'aws.query', + 'properties' => array( + 'Value' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + 'ModifyNetworkInterfaceAttribute' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'EmptyOutput', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'ModifyNetworkInterfaceAttribute', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'NetworkInterfaceId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'Description' => array( + 'type' => 'object', + 'location' => 'aws.query', + 'properties' => array( + 'Value' => array( + 'type' => 'string', + ), + ), + ), + 'SourceDestCheck' => array( + 'type' => 'object', + 'location' => 'aws.query', + 'properties' => array( + 'Value' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + ), + ), + ), + 'Groups' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'SecurityGroupId', + 'items' => array( + 'name' => 'SecurityGroupId', + 'type' => 'string', + ), + ), + 'Attachment' => array( + 'type' => 'object', + 'location' => 'aws.query', + 'properties' => array( + 'AttachmentId' => array( + 'type' => 'string', + ), + 'DeleteOnTermination' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + ), + ), + ), + ), + ), + 'ModifyReservedInstances' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'ModifyReservedInstancesResult', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'ModifyReservedInstances', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'ClientToken' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'ReservedInstancesIds' => array( + 'required' => true, + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'ReservedInstancesId', + 'items' => array( + 'name' => 'ReservedInstancesId', + 'type' => 'string', + ), + ), + 'TargetConfigurations' => array( + 'required' => true, + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'ReservedInstancesConfigurationSetItemType', + 'items' => array( + 'name' => 'ReservedInstancesConfigurationSetItemType', + 'type' => 'object', + 'properties' => array( + 'AvailabilityZone' => array( + 'type' => 'string', + ), + 'Platform' => array( + 'type' => 'string', + ), + 'InstanceCount' => array( + 'type' => 'numeric', + ), + 'InstanceType' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + 'ModifySnapshotAttribute' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'EmptyOutput', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'ModifySnapshotAttribute', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'SnapshotId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'Attribute' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'OperationType' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'UserIds' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'UserId', + 'items' => array( + 'name' => 'UserId', + 'type' => 'string', + ), + ), + 'GroupNames' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'UserGroup', + 'items' => array( + 'name' => 'UserGroup', + 'type' => 'string', + ), + ), + 'CreateVolumePermission' => array( + 'type' => 'object', + 'location' => 'aws.query', + 'properties' => array( + 'Add' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'CreateVolumePermission', + 'type' => 'object', + 'properties' => array( + 'UserId' => array( + 'type' => 'string', + ), + 'Group' => array( + 'type' => 'string', + ), + ), + ), + ), + 'Remove' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'CreateVolumePermission', + 'type' => 'object', + 'properties' => array( + 'UserId' => array( + 'type' => 'string', + ), + 'Group' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + ), + ), + 'ModifySubnetAttribute' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'EmptyOutput', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'ModifySubnetAttribute', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'SubnetId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'MapPublicIpOnLaunch' => array( + 'type' => 'object', + 'location' => 'aws.query', + 'properties' => array( + 'Value' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + ), + ), + ), + ), + ), + 'ModifyVolumeAttribute' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'EmptyOutput', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'ModifyVolumeAttribute', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'VolumeId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'AutoEnableIO' => array( + 'type' => 'object', + 'location' => 'aws.query', + 'properties' => array( + 'Value' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + ), + ), + ), + ), + ), + 'ModifyVpcAttribute' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'EmptyOutput', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'ModifyVpcAttribute', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'VpcId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'EnableDnsSupport' => array( + 'type' => 'object', + 'location' => 'aws.query', + 'properties' => array( + 'Value' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + ), + ), + ), + 'EnableDnsHostnames' => array( + 'type' => 'object', + 'location' => 'aws.query', + 'properties' => array( + 'Value' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + ), + ), + ), + ), + ), + 'MonitorInstances' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'MonitorInstancesResult', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'MonitorInstances', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'InstanceIds' => array( + 'required' => true, + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'InstanceId', + 'items' => array( + 'name' => 'InstanceId', + 'type' => 'string', + ), + ), + ), + ), + 'PurchaseReservedInstancesOffering' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'PurchaseReservedInstancesOfferingResult', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'PurchaseReservedInstancesOffering', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'ReservedInstancesOfferingId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'InstanceCount' => array( + 'required' => true, + 'type' => 'numeric', + 'location' => 'aws.query', + ), + 'LimitPrice' => array( + 'type' => 'object', + 'location' => 'aws.query', + 'properties' => array( + 'Amount' => array( + 'type' => 'numeric', + ), + 'CurrencyCode' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + 'RebootInstances' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'EmptyOutput', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'RebootInstances', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'InstanceIds' => array( + 'required' => true, + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'InstanceId', + 'items' => array( + 'name' => 'InstanceId', + 'type' => 'string', + ), + ), + ), + ), + 'RegisterImage' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'RegisterImageResult', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'RegisterImage', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'ImageLocation' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'Name' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'Description' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'Architecture' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'KernelId' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'RamdiskId' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'RootDeviceName' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'BlockDeviceMappings' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'BlockDeviceMapping', + 'items' => array( + 'name' => 'BlockDeviceMapping', + 'type' => 'object', + 'properties' => array( + 'VirtualName' => array( + 'type' => 'string', + ), + 'DeviceName' => array( + 'type' => 'string', + ), + 'Ebs' => array( + 'type' => 'object', + 'properties' => array( + 'SnapshotId' => array( + 'type' => 'string', + ), + 'VolumeSize' => array( + 'type' => 'numeric', + ), + 'DeleteOnTermination' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + ), + 'VolumeType' => array( + 'type' => 'string', + ), + 'Iops' => array( + 'type' => 'numeric', + ), + 'Encrypted' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + ), + ), + ), + 'NoDevice' => array( + 'type' => 'string', + ), + ), + ), + ), + 'VirtualizationType' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'SriovNetSupport' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + ), + 'RejectVpcPeeringConnection' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'RejectVpcPeeringConnectionResult', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'RejectVpcPeeringConnection', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'VpcPeeringConnectionId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + ), + 'ReleaseAddress' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'EmptyOutput', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'ReleaseAddress', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'PublicIp' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'AllocationId' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + ), + 'ReplaceNetworkAclAssociation' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'ReplaceNetworkAclAssociationResult', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'ReplaceNetworkAclAssociation', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'AssociationId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'NetworkAclId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + ), + 'ReplaceNetworkAclEntry' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'EmptyOutput', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'ReplaceNetworkAclEntry', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'NetworkAclId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'RuleNumber' => array( + 'required' => true, + 'type' => 'numeric', + 'location' => 'aws.query', + ), + 'Protocol' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'RuleAction' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'Egress' => array( + 'required' => true, + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'CidrBlock' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'IcmpTypeCode' => array( + 'type' => 'object', + 'location' => 'aws.query', + 'sentAs' => 'Icmp', + 'properties' => array( + 'Type' => array( + 'type' => 'numeric', + ), + 'Code' => array( + 'type' => 'numeric', + ), + ), + ), + 'PortRange' => array( + 'type' => 'object', + 'location' => 'aws.query', + 'properties' => array( + 'From' => array( + 'type' => 'numeric', + ), + 'To' => array( + 'type' => 'numeric', + ), + ), + ), + ), + ), + 'ReplaceRoute' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'EmptyOutput', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'ReplaceRoute', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'RouteTableId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'DestinationCidrBlock' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'GatewayId' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'InstanceId' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'NetworkInterfaceId' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'VpcPeeringConnectionId' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + ), + 'ReplaceRouteTableAssociation' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'ReplaceRouteTableAssociationResult', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'ReplaceRouteTableAssociation', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'AssociationId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'RouteTableId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + ), + 'ReportInstanceStatus' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'EmptyOutput', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'ReportInstanceStatus', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'Instances' => array( + 'required' => true, + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'InstanceId', + 'items' => array( + 'name' => 'InstanceId', + 'type' => 'string', + ), + ), + 'Status' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'StartTime' => array( + 'type' => array( + 'object', + 'string', + 'integer', + ), + 'format' => 'date-time', + 'location' => 'aws.query', + ), + 'EndTime' => array( + 'type' => array( + 'object', + 'string', + 'integer', + ), + 'format' => 'date-time', + 'location' => 'aws.query', + ), + 'ReasonCodes' => array( + 'required' => true, + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'ReasonCode', + 'items' => array( + 'name' => 'ReasonCode', + 'type' => 'string', + ), + ), + 'Description' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + ), + 'RequestSpotInstances' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'RequestSpotInstancesResult', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'RequestSpotInstances', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'SpotPrice' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'InstanceCount' => array( + 'type' => 'numeric', + 'location' => 'aws.query', + ), + 'Type' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'ValidFrom' => array( + 'type' => array( + 'object', + 'string', + 'integer', + ), + 'format' => 'date-time', + 'location' => 'aws.query', + ), + 'ValidUntil' => array( + 'type' => array( + 'object', + 'string', + 'integer', + ), + 'format' => 'date-time', + 'location' => 'aws.query', + ), + 'LaunchGroup' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'AvailabilityZoneGroup' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'LaunchSpecification' => array( + 'type' => 'object', + 'location' => 'aws.query', + 'properties' => array( + 'ImageId' => array( + 'type' => 'string', + ), + 'KeyName' => array( + 'type' => 'string', + ), + 'UserData' => array( + 'type' => 'string', + ), + 'AddressingType' => array( + 'type' => 'string', + ), + 'InstanceType' => array( + 'type' => 'string', + ), + 'Placement' => array( + 'type' => 'object', + 'properties' => array( + 'AvailabilityZone' => array( + 'type' => 'string', + ), + 'GroupName' => array( + 'type' => 'string', + ), + ), + ), + 'KernelId' => array( + 'type' => 'string', + ), + 'RamdiskId' => array( + 'type' => 'string', + ), + 'BlockDeviceMappings' => array( + 'type' => 'array', + 'sentAs' => 'BlockDeviceMapping', + 'items' => array( + 'name' => 'BlockDeviceMapping', + 'type' => 'object', + 'properties' => array( + 'VirtualName' => array( + 'type' => 'string', + ), + 'DeviceName' => array( + 'type' => 'string', + ), + 'Ebs' => array( + 'type' => 'object', + 'properties' => array( + 'SnapshotId' => array( + 'type' => 'string', + ), + 'VolumeSize' => array( + 'type' => 'numeric', + ), + 'DeleteOnTermination' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + ), + 'VolumeType' => array( + 'type' => 'string', + ), + 'Iops' => array( + 'type' => 'numeric', + ), + 'Encrypted' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + ), + ), + ), + 'NoDevice' => array( + 'type' => 'string', + ), + ), + ), + ), + 'Monitoring' => array( + 'type' => 'object', + 'properties' => array( + 'Enabled' => array( + 'required' => true, + 'type' => 'boolean', + 'format' => 'boolean-string', + ), + ), + ), + 'SubnetId' => array( + 'type' => 'string', + ), + 'NetworkInterfaces' => array( + 'type' => 'array', + 'sentAs' => 'NetworkInterface', + 'items' => array( + 'name' => 'NetworkInterface', + 'type' => 'object', + 'properties' => array( + 'NetworkInterfaceId' => array( + 'type' => 'string', + ), + 'DeviceIndex' => array( + 'type' => 'numeric', + ), + 'SubnetId' => array( + 'type' => 'string', + ), + 'Description' => array( + 'type' => 'string', + ), + 'PrivateIpAddress' => array( + 'type' => 'string', + ), + 'Groups' => array( + 'type' => 'array', + 'sentAs' => 'SecurityGroupId', + 'items' => array( + 'name' => 'SecurityGroupId', + 'type' => 'string', + ), + ), + 'DeleteOnTermination' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + ), + 'PrivateIpAddresses' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'PrivateIpAddressSpecification', + 'type' => 'object', + 'properties' => array( + 'PrivateIpAddress' => array( + 'required' => true, + 'type' => 'string', + ), + 'Primary' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + ), + ), + ), + ), + 'SecondaryPrivateIpAddressCount' => array( + 'type' => 'numeric', + ), + 'AssociatePublicIpAddress' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + ), + ), + ), + ), + 'IamInstanceProfile' => array( + 'type' => 'object', + 'properties' => array( + 'Arn' => array( + 'type' => 'string', + ), + 'Name' => array( + 'type' => 'string', + ), + ), + ), + 'EbsOptimized' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + ), + 'SecurityGroupIds' => array( + 'type' => 'array', + 'sentAs' => 'SecurityGroupId', + 'items' => array( + 'name' => 'SecurityGroupId', + 'type' => 'string', + ), + ), + 'SecurityGroups' => array( + 'type' => 'array', + 'sentAs' => 'SecurityGroup', + 'items' => array( + 'name' => 'SecurityGroup', + 'type' => 'string', + ), + ), + ), + ), + ), + ), + 'ResetImageAttribute' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'EmptyOutput', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'ResetImageAttribute', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'ImageId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'Attribute' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + ), + 'ResetInstanceAttribute' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'EmptyOutput', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'ResetInstanceAttribute', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'InstanceId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'Attribute' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + ), + 'ResetNetworkInterfaceAttribute' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'EmptyOutput', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'ResetNetworkInterfaceAttribute', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'NetworkInterfaceId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'SourceDestCheck' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + ), + 'ResetSnapshotAttribute' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'EmptyOutput', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'ResetSnapshotAttribute', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'SnapshotId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'Attribute' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + ), + 'RevokeSecurityGroupEgress' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'EmptyOutput', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'RevokeSecurityGroupEgress', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'GroupId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'SourceSecurityGroupName' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'SourceSecurityGroupOwnerId' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'IpProtocol' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'FromPort' => array( + 'type' => 'numeric', + 'location' => 'aws.query', + ), + 'ToPort' => array( + 'type' => 'numeric', + 'location' => 'aws.query', + ), + 'CidrIp' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'IpPermissions' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'items' => array( + 'name' => 'IpPermission', + 'type' => 'object', + 'properties' => array( + 'IpProtocol' => array( + 'type' => 'string', + ), + 'FromPort' => array( + 'type' => 'numeric', + ), + 'ToPort' => array( + 'type' => 'numeric', + ), + 'UserIdGroupPairs' => array( + 'type' => 'array', + 'sentAs' => 'Groups', + 'items' => array( + 'name' => 'Groups', + 'type' => 'object', + 'properties' => array( + 'UserId' => array( + 'type' => 'string', + ), + 'GroupName' => array( + 'type' => 'string', + ), + 'GroupId' => array( + 'type' => 'string', + ), + ), + ), + ), + 'IpRanges' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'IpRange', + 'type' => 'object', + 'properties' => array( + 'CidrIp' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + ), + ), + ), + 'RevokeSecurityGroupIngress' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'EmptyOutput', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'RevokeSecurityGroupIngress', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'GroupName' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'GroupId' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'SourceSecurityGroupName' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'SourceSecurityGroupOwnerId' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'IpProtocol' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'FromPort' => array( + 'type' => 'numeric', + 'location' => 'aws.query', + ), + 'ToPort' => array( + 'type' => 'numeric', + 'location' => 'aws.query', + ), + 'CidrIp' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'IpPermissions' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'items' => array( + 'name' => 'IpPermission', + 'type' => 'object', + 'properties' => array( + 'IpProtocol' => array( + 'type' => 'string', + ), + 'FromPort' => array( + 'type' => 'numeric', + ), + 'ToPort' => array( + 'type' => 'numeric', + ), + 'UserIdGroupPairs' => array( + 'type' => 'array', + 'sentAs' => 'Groups', + 'items' => array( + 'name' => 'Groups', + 'type' => 'object', + 'properties' => array( + 'UserId' => array( + 'type' => 'string', + ), + 'GroupName' => array( + 'type' => 'string', + ), + 'GroupId' => array( + 'type' => 'string', + ), + ), + ), + ), + 'IpRanges' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'IpRange', + 'type' => 'object', + 'properties' => array( + 'CidrIp' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + ), + ), + ), + 'RunInstances' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'reservation', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'RunInstances', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'ImageId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'MinCount' => array( + 'required' => true, + 'type' => 'numeric', + 'location' => 'aws.query', + ), + 'MaxCount' => array( + 'required' => true, + 'type' => 'numeric', + 'location' => 'aws.query', + ), + 'KeyName' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'SecurityGroups' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'SecurityGroup', + 'items' => array( + 'name' => 'SecurityGroup', + 'type' => 'string', + ), + ), + 'SecurityGroupIds' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'SecurityGroupId', + 'items' => array( + 'name' => 'SecurityGroupId', + 'type' => 'string', + ), + ), + 'UserData' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'InstanceType' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'Placement' => array( + 'type' => 'object', + 'location' => 'aws.query', + 'properties' => array( + 'AvailabilityZone' => array( + 'type' => 'string', + ), + 'GroupName' => array( + 'type' => 'string', + ), + 'Tenancy' => array( + 'type' => 'string', + ), + ), + ), + 'KernelId' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'RamdiskId' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'BlockDeviceMappings' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'BlockDeviceMapping', + 'items' => array( + 'name' => 'BlockDeviceMapping', + 'type' => 'object', + 'properties' => array( + 'VirtualName' => array( + 'type' => 'string', + ), + 'DeviceName' => array( + 'type' => 'string', + ), + 'Ebs' => array( + 'type' => 'object', + 'properties' => array( + 'SnapshotId' => array( + 'type' => 'string', + ), + 'VolumeSize' => array( + 'type' => 'numeric', + ), + 'DeleteOnTermination' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + ), + 'VolumeType' => array( + 'type' => 'string', + ), + 'Iops' => array( + 'type' => 'numeric', + ), + 'Encrypted' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + ), + ), + ), + 'NoDevice' => array( + 'type' => 'string', + ), + ), + ), + ), + 'Monitoring' => array( + 'type' => 'object', + 'location' => 'aws.query', + 'properties' => array( + 'Enabled' => array( + 'required' => true, + 'type' => 'boolean', + 'format' => 'boolean-string', + ), + ), + ), + 'SubnetId' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'DisableApiTermination' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'InstanceInitiatedShutdownBehavior' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'PrivateIpAddress' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'ClientToken' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'AdditionalInfo' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'NetworkInterfaces' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'NetworkInterface', + 'items' => array( + 'name' => 'NetworkInterface', + 'type' => 'object', + 'properties' => array( + 'NetworkInterfaceId' => array( + 'type' => 'string', + ), + 'DeviceIndex' => array( + 'type' => 'numeric', + ), + 'SubnetId' => array( + 'type' => 'string', + ), + 'Description' => array( + 'type' => 'string', + ), + 'PrivateIpAddress' => array( + 'type' => 'string', + ), + 'Groups' => array( + 'type' => 'array', + 'sentAs' => 'SecurityGroupId', + 'items' => array( + 'name' => 'SecurityGroupId', + 'type' => 'string', + ), + ), + 'DeleteOnTermination' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + ), + 'PrivateIpAddresses' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'PrivateIpAddressSpecification', + 'type' => 'object', + 'properties' => array( + 'PrivateIpAddress' => array( + 'required' => true, + 'type' => 'string', + ), + 'Primary' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + ), + ), + ), + ), + 'SecondaryPrivateIpAddressCount' => array( + 'type' => 'numeric', + ), + 'AssociatePublicIpAddress' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + ), + ), + ), + ), + 'IamInstanceProfile' => array( + 'type' => 'object', + 'location' => 'aws.query', + 'properties' => array( + 'Arn' => array( + 'type' => 'string', + ), + 'Name' => array( + 'type' => 'string', + ), + ), + ), + 'EbsOptimized' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + ), + ), + 'StartInstances' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'StartInstancesResult', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'StartInstances', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'InstanceIds' => array( + 'required' => true, + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'InstanceId', + 'items' => array( + 'name' => 'InstanceId', + 'type' => 'string', + ), + ), + 'AdditionalInfo' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + ), + ), + 'StopInstances' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'StopInstancesResult', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'StopInstances', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'InstanceIds' => array( + 'required' => true, + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'InstanceId', + 'items' => array( + 'name' => 'InstanceId', + 'type' => 'string', + ), + ), + 'Force' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + ), + ), + 'TerminateInstances' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'TerminateInstancesResult', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'TerminateInstances', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'InstanceIds' => array( + 'required' => true, + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'InstanceId', + 'items' => array( + 'name' => 'InstanceId', + 'type' => 'string', + ), + ), + ), + ), + 'UnassignPrivateIpAddresses' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'EmptyOutput', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'UnassignPrivateIpAddresses', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'NetworkInterfaceId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'PrivateIpAddresses' => array( + 'required' => true, + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'PrivateIpAddress', + 'items' => array( + 'name' => 'PrivateIpAddress', + 'type' => 'string', + ), + ), + ), + ), + 'UnmonitorInstances' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'UnmonitorInstancesResult', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'UnmonitorInstances', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-03-01', + ), + 'DryRun' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'InstanceIds' => array( + 'required' => true, + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'InstanceId', + 'items' => array( + 'name' => 'InstanceId', + 'type' => 'string', + ), + ), + ), + ), + ), + 'models' => array( + 'AcceptVpcPeeringConnectionResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'VpcPeeringConnection' => array( + 'type' => 'object', + 'location' => 'xml', + 'sentAs' => 'vpcPeeringConnection', + 'properties' => array( + 'AccepterVpcInfo' => array( + 'type' => 'object', + 'sentAs' => 'accepterVpcInfo', + 'properties' => array( + 'CidrBlock' => array( + 'type' => 'string', + 'sentAs' => 'cidrBlock', + ), + 'OwnerId' => array( + 'type' => 'string', + 'sentAs' => 'ownerId', + ), + 'VpcId' => array( + 'type' => 'string', + 'sentAs' => 'vpcId', + ), + ), + ), + 'ExpirationTime' => array( + 'type' => 'string', + 'sentAs' => 'expirationTime', + ), + 'RequesterVpcInfo' => array( + 'type' => 'object', + 'sentAs' => 'requesterVpcInfo', + 'properties' => array( + 'CidrBlock' => array( + 'type' => 'string', + 'sentAs' => 'cidrBlock', + ), + 'OwnerId' => array( + 'type' => 'string', + 'sentAs' => 'ownerId', + ), + 'VpcId' => array( + 'type' => 'string', + 'sentAs' => 'vpcId', + ), + ), + ), + 'Status' => array( + 'type' => 'object', + 'sentAs' => 'status', + 'properties' => array( + 'Code' => array( + 'type' => 'string', + 'sentAs' => 'code', + ), + 'Message' => array( + 'type' => 'string', + 'sentAs' => 'message', + ), + ), + ), + 'Tags' => array( + 'type' => 'array', + 'sentAs' => 'tagSet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + 'sentAs' => 'key', + ), + 'Value' => array( + 'type' => 'string', + 'sentAs' => 'value', + ), + ), + ), + ), + 'VpcPeeringConnectionId' => array( + 'type' => 'string', + 'sentAs' => 'vpcPeeringConnectionId', + ), + ), + ), + ), + ), + 'AllocateAddressResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'PublicIp' => array( + 'type' => 'string', + 'location' => 'xml', + 'sentAs' => 'publicIp', + ), + 'Domain' => array( + 'type' => 'string', + 'location' => 'xml', + 'sentAs' => 'domain', + ), + 'AllocationId' => array( + 'type' => 'string', + 'location' => 'xml', + 'sentAs' => 'allocationId', + ), + ), + ), + 'EmptyOutput' => array( + 'type' => 'object', + 'additionalProperties' => true, + ), + 'AssociateAddressResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'AssociationId' => array( + 'type' => 'string', + 'location' => 'xml', + 'sentAs' => 'associationId', + ), + ), + ), + 'AssociateRouteTableResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'AssociationId' => array( + 'type' => 'string', + 'location' => 'xml', + 'sentAs' => 'associationId', + ), + ), + ), + 'AttachClassicLinkVpcResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'Return' => array( + 'type' => 'boolean', + 'location' => 'xml', + 'sentAs' => 'return', + ), + ), + ), + 'AttachNetworkInterfaceResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'AttachmentId' => array( + 'type' => 'string', + 'location' => 'xml', + 'sentAs' => 'attachmentId', + ), + ), + ), + 'attachment' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'VolumeId' => array( + 'type' => 'string', + 'location' => 'xml', + 'sentAs' => 'volumeId', + ), + 'InstanceId' => array( + 'type' => 'string', + 'location' => 'xml', + 'sentAs' => 'instanceId', + ), + 'Device' => array( + 'type' => 'string', + 'location' => 'xml', + 'sentAs' => 'device', + ), + 'State' => array( + 'type' => 'string', + 'location' => 'xml', + 'sentAs' => 'status', + ), + 'AttachTime' => array( + 'type' => 'string', + 'location' => 'xml', + 'sentAs' => 'attachTime', + ), + 'DeleteOnTermination' => array( + 'type' => 'boolean', + 'location' => 'xml', + 'sentAs' => 'deleteOnTermination', + ), + ), + ), + 'AttachVpnGatewayResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'VpcAttachment' => array( + 'type' => 'object', + 'location' => 'xml', + 'sentAs' => 'attachment', + 'properties' => array( + 'VpcId' => array( + 'type' => 'string', + 'sentAs' => 'vpcId', + ), + 'State' => array( + 'type' => 'string', + 'sentAs' => 'state', + ), + ), + ), + ), + ), + 'BundleInstanceResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'BundleTask' => array( + 'type' => 'object', + 'location' => 'xml', + 'sentAs' => 'bundleInstanceTask', + 'properties' => array( + 'InstanceId' => array( + 'type' => 'string', + 'sentAs' => 'instanceId', + ), + 'BundleId' => array( + 'type' => 'string', + 'sentAs' => 'bundleId', + ), + 'State' => array( + 'type' => 'string', + 'sentAs' => 'state', + ), + 'StartTime' => array( + 'type' => 'string', + 'sentAs' => 'startTime', + ), + 'UpdateTime' => array( + 'type' => 'string', + 'sentAs' => 'updateTime', + ), + 'Storage' => array( + 'type' => 'object', + 'sentAs' => 'storage', + 'properties' => array( + 'S3' => array( + 'type' => 'object', + 'properties' => array( + 'Bucket' => array( + 'type' => 'string', + 'sentAs' => 'bucket', + ), + 'Prefix' => array( + 'type' => 'string', + 'sentAs' => 'prefix', + ), + 'AWSAccessKeyId' => array( + 'type' => 'string', + ), + 'UploadPolicy' => array( + 'type' => 'string', + 'sentAs' => 'uploadPolicy', + ), + 'UploadPolicySignature' => array( + 'type' => 'string', + 'sentAs' => 'uploadPolicySignature', + ), + ), + ), + ), + ), + 'Progress' => array( + 'type' => 'string', + 'sentAs' => 'progress', + ), + 'BundleTaskError' => array( + 'type' => 'object', + 'sentAs' => 'error', + 'properties' => array( + 'Code' => array( + 'type' => 'string', + 'sentAs' => 'code', + ), + 'Message' => array( + 'type' => 'string', + 'sentAs' => 'message', + ), + ), + ), + ), + ), + ), + ), + 'CancelBundleTaskResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'BundleTask' => array( + 'type' => 'object', + 'location' => 'xml', + 'sentAs' => 'bundleInstanceTask', + 'properties' => array( + 'InstanceId' => array( + 'type' => 'string', + 'sentAs' => 'instanceId', + ), + 'BundleId' => array( + 'type' => 'string', + 'sentAs' => 'bundleId', + ), + 'State' => array( + 'type' => 'string', + 'sentAs' => 'state', + ), + 'StartTime' => array( + 'type' => 'string', + 'sentAs' => 'startTime', + ), + 'UpdateTime' => array( + 'type' => 'string', + 'sentAs' => 'updateTime', + ), + 'Storage' => array( + 'type' => 'object', + 'sentAs' => 'storage', + 'properties' => array( + 'S3' => array( + 'type' => 'object', + 'properties' => array( + 'Bucket' => array( + 'type' => 'string', + 'sentAs' => 'bucket', + ), + 'Prefix' => array( + 'type' => 'string', + 'sentAs' => 'prefix', + ), + 'AWSAccessKeyId' => array( + 'type' => 'string', + ), + 'UploadPolicy' => array( + 'type' => 'string', + 'sentAs' => 'uploadPolicy', + ), + 'UploadPolicySignature' => array( + 'type' => 'string', + 'sentAs' => 'uploadPolicySignature', + ), + ), + ), + ), + ), + 'Progress' => array( + 'type' => 'string', + 'sentAs' => 'progress', + ), + 'BundleTaskError' => array( + 'type' => 'object', + 'sentAs' => 'error', + 'properties' => array( + 'Code' => array( + 'type' => 'string', + 'sentAs' => 'code', + ), + 'Message' => array( + 'type' => 'string', + 'sentAs' => 'message', + ), + ), + ), + ), + ), + ), + ), + 'CancelImportTaskResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'ImportTaskId' => array( + 'type' => 'string', + 'location' => 'xml', + 'sentAs' => 'importTaskId', + ), + 'State' => array( + 'type' => 'string', + 'location' => 'xml', + 'sentAs' => 'state', + ), + 'PreviousState' => array( + 'type' => 'string', + 'location' => 'xml', + 'sentAs' => 'previousState', + ), + ), + ), + 'CancelReservedInstancesListingResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'ReservedInstancesListings' => array( + 'type' => 'array', + 'location' => 'xml', + 'sentAs' => 'reservedInstancesListingsSet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'ReservedInstancesListingId' => array( + 'type' => 'string', + 'sentAs' => 'reservedInstancesListingId', + ), + 'ReservedInstancesId' => array( + 'type' => 'string', + 'sentAs' => 'reservedInstancesId', + ), + 'CreateDate' => array( + 'type' => 'string', + 'sentAs' => 'createDate', + ), + 'UpdateDate' => array( + 'type' => 'string', + 'sentAs' => 'updateDate', + ), + 'Status' => array( + 'type' => 'string', + 'sentAs' => 'status', + ), + 'StatusMessage' => array( + 'type' => 'string', + 'sentAs' => 'statusMessage', + ), + 'InstanceCounts' => array( + 'type' => 'array', + 'sentAs' => 'instanceCounts', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'State' => array( + 'type' => 'string', + 'sentAs' => 'state', + ), + 'InstanceCount' => array( + 'type' => 'numeric', + 'sentAs' => 'instanceCount', + ), + ), + ), + ), + 'PriceSchedules' => array( + 'type' => 'array', + 'sentAs' => 'priceSchedules', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'Term' => array( + 'type' => 'numeric', + 'sentAs' => 'term', + ), + 'Price' => array( + 'type' => 'numeric', + 'sentAs' => 'price', + ), + 'CurrencyCode' => array( + 'type' => 'string', + 'sentAs' => 'currencyCode', + ), + 'Active' => array( + 'type' => 'boolean', + 'sentAs' => 'active', + ), + ), + ), + ), + 'Tags' => array( + 'type' => 'array', + 'sentAs' => 'tagSet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + 'sentAs' => 'key', + ), + 'Value' => array( + 'type' => 'string', + 'sentAs' => 'value', + ), + ), + ), + ), + 'ClientToken' => array( + 'type' => 'string', + 'sentAs' => 'clientToken', + ), + ), + ), + ), + ), + ), + 'CancelSpotInstanceRequestsResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'CancelledSpotInstanceRequests' => array( + 'type' => 'array', + 'location' => 'xml', + 'sentAs' => 'spotInstanceRequestSet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'SpotInstanceRequestId' => array( + 'type' => 'string', + 'sentAs' => 'spotInstanceRequestId', + ), + 'State' => array( + 'type' => 'string', + 'sentAs' => 'state', + ), + ), + ), + ), + ), + ), + 'ConfirmProductInstanceResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'OwnerId' => array( + 'type' => 'string', + 'location' => 'xml', + 'sentAs' => 'ownerId', + ), + ), + ), + 'CopyImageResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'ImageId' => array( + 'type' => 'string', + 'location' => 'xml', + 'sentAs' => 'imageId', + ), + ), + ), + 'CopySnapshotResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'SnapshotId' => array( + 'type' => 'string', + 'location' => 'xml', + 'sentAs' => 'snapshotId', + ), + ), + ), + 'CreateCustomerGatewayResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'CustomerGateway' => array( + 'type' => 'object', + 'location' => 'xml', + 'sentAs' => 'customerGateway', + 'properties' => array( + 'CustomerGatewayId' => array( + 'type' => 'string', + 'sentAs' => 'customerGatewayId', + ), + 'State' => array( + 'type' => 'string', + 'sentAs' => 'state', + ), + 'Type' => array( + 'type' => 'string', + 'sentAs' => 'type', + ), + 'IpAddress' => array( + 'type' => 'string', + 'sentAs' => 'ipAddress', + ), + 'BgpAsn' => array( + 'type' => 'string', + 'sentAs' => 'bgpAsn', + ), + 'Tags' => array( + 'type' => 'array', + 'sentAs' => 'tagSet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + 'sentAs' => 'key', + ), + 'Value' => array( + 'type' => 'string', + 'sentAs' => 'value', + ), + ), + ), + ), + ), + ), + ), + ), + 'CreateDhcpOptionsResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'DhcpOptions' => array( + 'type' => 'object', + 'location' => 'xml', + 'sentAs' => 'dhcpOptions', + 'properties' => array( + 'DhcpOptionsId' => array( + 'type' => 'string', + 'sentAs' => 'dhcpOptionsId', + ), + 'DhcpConfigurations' => array( + 'type' => 'array', + 'sentAs' => 'dhcpConfigurationSet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + 'sentAs' => 'key', + ), + 'Values' => array( + 'type' => 'array', + 'sentAs' => 'valueSet', + 'items' => array( + 'name' => 'item', + 'type' => 'string', + 'sentAs' => 'item', + ), + ), + ), + ), + ), + 'Tags' => array( + 'type' => 'array', + 'sentAs' => 'tagSet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + 'sentAs' => 'key', + ), + 'Value' => array( + 'type' => 'string', + 'sentAs' => 'value', + ), + ), + ), + ), + ), + ), + ), + ), + 'CreateImageResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'ImageId' => array( + 'type' => 'string', + 'location' => 'xml', + 'sentAs' => 'imageId', + ), + ), + ), + 'CreateInstanceExportTaskResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'ExportTask' => array( + 'type' => 'object', + 'location' => 'xml', + 'sentAs' => 'exportTask', + 'properties' => array( + 'ExportTaskId' => array( + 'type' => 'string', + 'sentAs' => 'exportTaskId', + ), + 'Description' => array( + 'type' => 'string', + 'sentAs' => 'description', + ), + 'State' => array( + 'type' => 'string', + 'sentAs' => 'state', + ), + 'StatusMessage' => array( + 'type' => 'string', + 'sentAs' => 'statusMessage', + ), + 'InstanceExportDetails' => array( + 'type' => 'object', + 'sentAs' => 'instanceExport', + 'properties' => array( + 'InstanceId' => array( + 'type' => 'string', + 'sentAs' => 'instanceId', + ), + 'TargetEnvironment' => array( + 'type' => 'string', + 'sentAs' => 'targetEnvironment', + ), + ), + ), + 'ExportToS3Task' => array( + 'type' => 'object', + 'sentAs' => 'exportToS3', + 'properties' => array( + 'DiskImageFormat' => array( + 'type' => 'string', + 'sentAs' => 'diskImageFormat', + ), + 'ContainerFormat' => array( + 'type' => 'string', + 'sentAs' => 'containerFormat', + ), + 'S3Bucket' => array( + 'type' => 'string', + 'sentAs' => 's3Bucket', + ), + 'S3Key' => array( + 'type' => 'string', + 'sentAs' => 's3Key', + ), + ), + ), + ), + ), + ), + ), + 'CreateInternetGatewayResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'InternetGateway' => array( + 'type' => 'object', + 'location' => 'xml', + 'sentAs' => 'internetGateway', + 'properties' => array( + 'InternetGatewayId' => array( + 'type' => 'string', + 'sentAs' => 'internetGatewayId', + ), + 'Attachments' => array( + 'type' => 'array', + 'sentAs' => 'attachmentSet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'VpcId' => array( + 'type' => 'string', + 'sentAs' => 'vpcId', + ), + 'State' => array( + 'type' => 'string', + 'sentAs' => 'state', + ), + ), + ), + ), + 'Tags' => array( + 'type' => 'array', + 'sentAs' => 'tagSet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + 'sentAs' => 'key', + ), + 'Value' => array( + 'type' => 'string', + 'sentAs' => 'value', + ), + ), + ), + ), + ), + ), + ), + ), + 'CreateKeyPairResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'KeyName' => array( + 'type' => 'string', + 'location' => 'xml', + 'sentAs' => 'keyName', + ), + 'KeyFingerprint' => array( + 'type' => 'string', + 'location' => 'xml', + 'sentAs' => 'keyFingerprint', + ), + 'KeyMaterial' => array( + 'type' => 'string', + 'location' => 'xml', + 'sentAs' => 'keyMaterial', + ), + ), + ), + 'CreateNetworkAclResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'NetworkAcl' => array( + 'type' => 'object', + 'location' => 'xml', + 'sentAs' => 'networkAcl', + 'properties' => array( + 'NetworkAclId' => array( + 'type' => 'string', + 'sentAs' => 'networkAclId', + ), + 'VpcId' => array( + 'type' => 'string', + 'sentAs' => 'vpcId', + ), + 'IsDefault' => array( + 'type' => 'boolean', + 'sentAs' => 'default', + ), + 'Entries' => array( + 'type' => 'array', + 'sentAs' => 'entrySet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'RuleNumber' => array( + 'type' => 'numeric', + 'sentAs' => 'ruleNumber', + ), + 'Protocol' => array( + 'type' => 'string', + 'sentAs' => 'protocol', + ), + 'RuleAction' => array( + 'type' => 'string', + 'sentAs' => 'ruleAction', + ), + 'Egress' => array( + 'type' => 'boolean', + 'sentAs' => 'egress', + ), + 'CidrBlock' => array( + 'type' => 'string', + 'sentAs' => 'cidrBlock', + ), + 'IcmpTypeCode' => array( + 'type' => 'object', + 'sentAs' => 'icmpTypeCode', + 'properties' => array( + 'Type' => array( + 'type' => 'numeric', + 'sentAs' => 'type', + ), + 'Code' => array( + 'type' => 'numeric', + 'sentAs' => 'code', + ), + ), + ), + 'PortRange' => array( + 'type' => 'object', + 'sentAs' => 'portRange', + 'properties' => array( + 'From' => array( + 'type' => 'numeric', + 'sentAs' => 'from', + ), + 'To' => array( + 'type' => 'numeric', + 'sentAs' => 'to', + ), + ), + ), + ), + ), + ), + 'Associations' => array( + 'type' => 'array', + 'sentAs' => 'associationSet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'NetworkAclAssociationId' => array( + 'type' => 'string', + 'sentAs' => 'networkAclAssociationId', + ), + 'NetworkAclId' => array( + 'type' => 'string', + 'sentAs' => 'networkAclId', + ), + 'SubnetId' => array( + 'type' => 'string', + 'sentAs' => 'subnetId', + ), + ), + ), + ), + 'Tags' => array( + 'type' => 'array', + 'sentAs' => 'tagSet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + 'sentAs' => 'key', + ), + 'Value' => array( + 'type' => 'string', + 'sentAs' => 'value', + ), + ), + ), + ), + ), + ), + ), + ), + 'CreateNetworkInterfaceResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'NetworkInterface' => array( + 'type' => 'object', + 'location' => 'xml', + 'sentAs' => 'networkInterface', + 'properties' => array( + 'NetworkInterfaceId' => array( + 'type' => 'string', + 'sentAs' => 'networkInterfaceId', + ), + 'SubnetId' => array( + 'type' => 'string', + 'sentAs' => 'subnetId', + ), + 'VpcId' => array( + 'type' => 'string', + 'sentAs' => 'vpcId', + ), + 'AvailabilityZone' => array( + 'type' => 'string', + 'sentAs' => 'availabilityZone', + ), + 'Description' => array( + 'type' => 'string', + 'sentAs' => 'description', + ), + 'OwnerId' => array( + 'type' => 'string', + 'sentAs' => 'ownerId', + ), + 'RequesterId' => array( + 'type' => 'string', + 'sentAs' => 'requesterId', + ), + 'RequesterManaged' => array( + 'type' => 'boolean', + 'sentAs' => 'requesterManaged', + ), + 'Status' => array( + 'type' => 'string', + 'sentAs' => 'status', + ), + 'MacAddress' => array( + 'type' => 'string', + 'sentAs' => 'macAddress', + ), + 'PrivateIpAddress' => array( + 'type' => 'string', + 'sentAs' => 'privateIpAddress', + ), + 'PrivateDnsName' => array( + 'type' => 'string', + 'sentAs' => 'privateDnsName', + ), + 'SourceDestCheck' => array( + 'type' => 'boolean', + 'sentAs' => 'sourceDestCheck', + ), + 'Groups' => array( + 'type' => 'array', + 'sentAs' => 'groupSet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'GroupName' => array( + 'type' => 'string', + 'sentAs' => 'groupName', + ), + 'GroupId' => array( + 'type' => 'string', + 'sentAs' => 'groupId', + ), + ), + ), + ), + 'Attachment' => array( + 'type' => 'object', + 'sentAs' => 'attachment', + 'properties' => array( + 'AttachmentId' => array( + 'type' => 'string', + 'sentAs' => 'attachmentId', + ), + 'InstanceId' => array( + 'type' => 'string', + 'sentAs' => 'instanceId', + ), + 'InstanceOwnerId' => array( + 'type' => 'string', + 'sentAs' => 'instanceOwnerId', + ), + 'DeviceIndex' => array( + 'type' => 'numeric', + 'sentAs' => 'deviceIndex', + ), + 'Status' => array( + 'type' => 'string', + 'sentAs' => 'status', + ), + 'AttachTime' => array( + 'type' => 'string', + 'sentAs' => 'attachTime', + ), + 'DeleteOnTermination' => array( + 'type' => 'boolean', + 'sentAs' => 'deleteOnTermination', + ), + ), + ), + 'Association' => array( + 'type' => 'object', + 'sentAs' => 'association', + 'properties' => array( + 'PublicIp' => array( + 'type' => 'string', + 'sentAs' => 'publicIp', + ), + 'PublicDnsName' => array( + 'type' => 'string', + 'sentAs' => 'publicDnsName', + ), + 'IpOwnerId' => array( + 'type' => 'string', + 'sentAs' => 'ipOwnerId', + ), + 'AllocationId' => array( + 'type' => 'string', + 'sentAs' => 'allocationId', + ), + 'AssociationId' => array( + 'type' => 'string', + 'sentAs' => 'associationId', + ), + ), + ), + 'TagSet' => array( + 'type' => 'array', + 'sentAs' => 'tagSet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + 'sentAs' => 'key', + ), + 'Value' => array( + 'type' => 'string', + 'sentAs' => 'value', + ), + ), + ), + ), + 'PrivateIpAddresses' => array( + 'type' => 'array', + 'sentAs' => 'privateIpAddressesSet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'PrivateIpAddress' => array( + 'type' => 'string', + 'sentAs' => 'privateIpAddress', + ), + 'PrivateDnsName' => array( + 'type' => 'string', + 'sentAs' => 'privateDnsName', + ), + 'Primary' => array( + 'type' => 'boolean', + 'sentAs' => 'primary', + ), + 'Association' => array( + 'type' => 'object', + 'sentAs' => 'association', + 'properties' => array( + 'PublicIp' => array( + 'type' => 'string', + 'sentAs' => 'publicIp', + ), + 'PublicDnsName' => array( + 'type' => 'string', + 'sentAs' => 'publicDnsName', + ), + 'IpOwnerId' => array( + 'type' => 'string', + 'sentAs' => 'ipOwnerId', + ), + 'AllocationId' => array( + 'type' => 'string', + 'sentAs' => 'allocationId', + ), + 'AssociationId' => array( + 'type' => 'string', + 'sentAs' => 'associationId', + ), + ), + ), + ), + ), + ), + ), + ), + ), + ), + 'CreateReservedInstancesListingResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'ReservedInstancesListings' => array( + 'type' => 'array', + 'location' => 'xml', + 'sentAs' => 'reservedInstancesListingsSet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'ReservedInstancesListingId' => array( + 'type' => 'string', + 'sentAs' => 'reservedInstancesListingId', + ), + 'ReservedInstancesId' => array( + 'type' => 'string', + 'sentAs' => 'reservedInstancesId', + ), + 'CreateDate' => array( + 'type' => 'string', + 'sentAs' => 'createDate', + ), + 'UpdateDate' => array( + 'type' => 'string', + 'sentAs' => 'updateDate', + ), + 'Status' => array( + 'type' => 'string', + 'sentAs' => 'status', + ), + 'StatusMessage' => array( + 'type' => 'string', + 'sentAs' => 'statusMessage', + ), + 'InstanceCounts' => array( + 'type' => 'array', + 'sentAs' => 'instanceCounts', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'State' => array( + 'type' => 'string', + 'sentAs' => 'state', + ), + 'InstanceCount' => array( + 'type' => 'numeric', + 'sentAs' => 'instanceCount', + ), + ), + ), + ), + 'PriceSchedules' => array( + 'type' => 'array', + 'sentAs' => 'priceSchedules', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'Term' => array( + 'type' => 'numeric', + 'sentAs' => 'term', + ), + 'Price' => array( + 'type' => 'numeric', + 'sentAs' => 'price', + ), + 'CurrencyCode' => array( + 'type' => 'string', + 'sentAs' => 'currencyCode', + ), + 'Active' => array( + 'type' => 'boolean', + 'sentAs' => 'active', + ), + ), + ), + ), + 'Tags' => array( + 'type' => 'array', + 'sentAs' => 'tagSet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + 'sentAs' => 'key', + ), + 'Value' => array( + 'type' => 'string', + 'sentAs' => 'value', + ), + ), + ), + ), + 'ClientToken' => array( + 'type' => 'string', + 'sentAs' => 'clientToken', + ), + ), + ), + ), + ), + ), + 'CreateRouteTableResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'RouteTable' => array( + 'type' => 'object', + 'location' => 'xml', + 'sentAs' => 'routeTable', + 'properties' => array( + 'RouteTableId' => array( + 'type' => 'string', + 'sentAs' => 'routeTableId', + ), + 'VpcId' => array( + 'type' => 'string', + 'sentAs' => 'vpcId', + ), + 'Routes' => array( + 'type' => 'array', + 'sentAs' => 'routeSet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'DestinationCidrBlock' => array( + 'type' => 'string', + 'sentAs' => 'destinationCidrBlock', + ), + 'GatewayId' => array( + 'type' => 'string', + 'sentAs' => 'gatewayId', + ), + 'InstanceId' => array( + 'type' => 'string', + 'sentAs' => 'instanceId', + ), + 'InstanceOwnerId' => array( + 'type' => 'string', + 'sentAs' => 'instanceOwnerId', + ), + 'NetworkInterfaceId' => array( + 'type' => 'string', + 'sentAs' => 'networkInterfaceId', + ), + 'VpcPeeringConnectionId' => array( + 'type' => 'string', + 'sentAs' => 'vpcPeeringConnectionId', + ), + 'State' => array( + 'type' => 'string', + 'sentAs' => 'state', + ), + 'Origin' => array( + 'type' => 'string', + 'sentAs' => 'origin', + ), + ), + ), + ), + 'Associations' => array( + 'type' => 'array', + 'sentAs' => 'associationSet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'RouteTableAssociationId' => array( + 'type' => 'string', + 'sentAs' => 'routeTableAssociationId', + ), + 'RouteTableId' => array( + 'type' => 'string', + 'sentAs' => 'routeTableId', + ), + 'SubnetId' => array( + 'type' => 'string', + 'sentAs' => 'subnetId', + ), + 'Main' => array( + 'type' => 'boolean', + 'sentAs' => 'main', + ), + ), + ), + ), + 'Tags' => array( + 'type' => 'array', + 'sentAs' => 'tagSet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + 'sentAs' => 'key', + ), + 'Value' => array( + 'type' => 'string', + 'sentAs' => 'value', + ), + ), + ), + ), + 'PropagatingVgws' => array( + 'type' => 'array', + 'sentAs' => 'propagatingVgwSet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'GatewayId' => array( + 'type' => 'string', + 'sentAs' => 'gatewayId', + ), + ), + ), + ), + ), + ), + ), + ), + 'CreateSecurityGroupResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'GroupId' => array( + 'type' => 'string', + 'location' => 'xml', + 'sentAs' => 'groupId', + ), + ), + ), + 'snapshot' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'SnapshotId' => array( + 'type' => 'string', + 'location' => 'xml', + 'sentAs' => 'snapshotId', + ), + 'VolumeId' => array( + 'type' => 'string', + 'location' => 'xml', + 'sentAs' => 'volumeId', + ), + 'State' => array( + 'type' => 'string', + 'location' => 'xml', + 'sentAs' => 'status', + ), + 'StartTime' => array( + 'type' => 'string', + 'location' => 'xml', + 'sentAs' => 'startTime', + ), + 'Progress' => array( + 'type' => 'string', + 'location' => 'xml', + 'sentAs' => 'progress', + ), + 'OwnerId' => array( + 'type' => 'string', + 'location' => 'xml', + 'sentAs' => 'ownerId', + ), + 'Description' => array( + 'type' => 'string', + 'location' => 'xml', + 'sentAs' => 'description', + ), + 'VolumeSize' => array( + 'type' => 'numeric', + 'location' => 'xml', + 'sentAs' => 'volumeSize', + ), + 'OwnerAlias' => array( + 'type' => 'string', + 'location' => 'xml', + 'sentAs' => 'ownerAlias', + ), + 'Encrypted' => array( + 'type' => 'boolean', + 'location' => 'xml', + 'sentAs' => 'encrypted', + ), + 'KmsKeyId' => array( + 'type' => 'string', + 'location' => 'xml', + 'sentAs' => 'kmsKeyId', + ), + ), + ), + 'CreateSpotDatafeedSubscriptionResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'SpotDatafeedSubscription' => array( + 'type' => 'object', + 'location' => 'xml', + 'sentAs' => 'spotDatafeedSubscription', + 'properties' => array( + 'OwnerId' => array( + 'type' => 'string', + 'sentAs' => 'ownerId', + ), + 'Bucket' => array( + 'type' => 'string', + 'sentAs' => 'bucket', + ), + 'Prefix' => array( + 'type' => 'string', + 'sentAs' => 'prefix', + ), + 'State' => array( + 'type' => 'string', + 'sentAs' => 'state', + ), + 'Fault' => array( + 'type' => 'object', + 'sentAs' => 'fault', + 'properties' => array( + 'Code' => array( + 'type' => 'string', + 'sentAs' => 'code', + ), + 'Message' => array( + 'type' => 'string', + 'sentAs' => 'message', + ), + ), + ), + ), + ), + ), + ), + 'CreateSubnetResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'Subnet' => array( + 'type' => 'object', + 'location' => 'xml', + 'sentAs' => 'subnet', + 'properties' => array( + 'SubnetId' => array( + 'type' => 'string', + 'sentAs' => 'subnetId', + ), + 'State' => array( + 'type' => 'string', + 'sentAs' => 'state', + ), + 'VpcId' => array( + 'type' => 'string', + 'sentAs' => 'vpcId', + ), + 'CidrBlock' => array( + 'type' => 'string', + 'sentAs' => 'cidrBlock', + ), + 'AvailableIpAddressCount' => array( + 'type' => 'numeric', + 'sentAs' => 'availableIpAddressCount', + ), + 'AvailabilityZone' => array( + 'type' => 'string', + 'sentAs' => 'availabilityZone', + ), + 'DefaultForAz' => array( + 'type' => 'boolean', + 'sentAs' => 'defaultForAz', + ), + 'MapPublicIpOnLaunch' => array( + 'type' => 'boolean', + 'sentAs' => 'mapPublicIpOnLaunch', + ), + 'Tags' => array( + 'type' => 'array', + 'sentAs' => 'tagSet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + 'sentAs' => 'key', + ), + 'Value' => array( + 'type' => 'string', + 'sentAs' => 'value', + ), + ), + ), + ), + ), + ), + ), + ), + 'volume' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'VolumeId' => array( + 'type' => 'string', + 'location' => 'xml', + 'sentAs' => 'volumeId', + ), + 'Size' => array( + 'type' => 'numeric', + 'location' => 'xml', + 'sentAs' => 'size', + ), + 'SnapshotId' => array( + 'type' => 'string', + 'location' => 'xml', + 'sentAs' => 'snapshotId', + ), + 'AvailabilityZone' => array( + 'type' => 'string', + 'location' => 'xml', + 'sentAs' => 'availabilityZone', + ), + 'State' => array( + 'type' => 'string', + 'location' => 'xml', + 'sentAs' => 'status', + ), + 'CreateTime' => array( + 'type' => 'string', + 'location' => 'xml', + 'sentAs' => 'createTime', + ), + 'Attachments' => array( + 'type' => 'array', + 'location' => 'xml', + 'sentAs' => 'attachmentSet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'VolumeId' => array( + 'type' => 'string', + 'sentAs' => 'volumeId', + ), + 'InstanceId' => array( + 'type' => 'string', + 'sentAs' => 'instanceId', + ), + 'Device' => array( + 'type' => 'string', + 'sentAs' => 'device', + ), + 'State' => array( + 'type' => 'string', + 'sentAs' => 'status', + ), + 'AttachTime' => array( + 'type' => 'string', + 'sentAs' => 'attachTime', + ), + 'DeleteOnTermination' => array( + 'type' => 'boolean', + 'sentAs' => 'deleteOnTermination', + ), + ), + ), + ), + 'Tags' => array( + 'type' => 'array', + 'location' => 'xml', + 'sentAs' => 'tagSet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + 'sentAs' => 'key', + ), + 'Value' => array( + 'type' => 'string', + 'sentAs' => 'value', + ), + ), + ), + ), + 'VolumeType' => array( + 'type' => 'string', + 'location' => 'xml', + 'sentAs' => 'volumeType', + ), + 'Iops' => array( + 'type' => 'numeric', + 'location' => 'xml', + 'sentAs' => 'iops', + ), + 'Encrypted' => array( + 'type' => 'boolean', + 'location' => 'xml', + 'sentAs' => 'encrypted', + ), + 'KmsKeyId' => array( + 'type' => 'string', + 'location' => 'xml', + 'sentAs' => 'kmsKeyId', + ), + ), + ), + 'CreateVpcResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'Vpc' => array( + 'type' => 'object', + 'location' => 'xml', + 'sentAs' => 'vpc', + 'properties' => array( + 'VpcId' => array( + 'type' => 'string', + 'sentAs' => 'vpcId', + ), + 'State' => array( + 'type' => 'string', + 'sentAs' => 'state', + ), + 'CidrBlock' => array( + 'type' => 'string', + 'sentAs' => 'cidrBlock', + ), + 'DhcpOptionsId' => array( + 'type' => 'string', + 'sentAs' => 'dhcpOptionsId', + ), + 'Tags' => array( + 'type' => 'array', + 'sentAs' => 'tagSet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + 'sentAs' => 'key', + ), + 'Value' => array( + 'type' => 'string', + 'sentAs' => 'value', + ), + ), + ), + ), + 'InstanceTenancy' => array( + 'type' => 'string', + 'sentAs' => 'instanceTenancy', + ), + 'IsDefault' => array( + 'type' => 'boolean', + 'sentAs' => 'isDefault', + ), + ), + ), + ), + ), + 'CreateVpcPeeringConnectionResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'VpcPeeringConnection' => array( + 'type' => 'object', + 'location' => 'xml', + 'sentAs' => 'vpcPeeringConnection', + 'properties' => array( + 'AccepterVpcInfo' => array( + 'type' => 'object', + 'sentAs' => 'accepterVpcInfo', + 'properties' => array( + 'CidrBlock' => array( + 'type' => 'string', + 'sentAs' => 'cidrBlock', + ), + 'OwnerId' => array( + 'type' => 'string', + 'sentAs' => 'ownerId', + ), + 'VpcId' => array( + 'type' => 'string', + 'sentAs' => 'vpcId', + ), + ), + ), + 'ExpirationTime' => array( + 'type' => 'string', + 'sentAs' => 'expirationTime', + ), + 'RequesterVpcInfo' => array( + 'type' => 'object', + 'sentAs' => 'requesterVpcInfo', + 'properties' => array( + 'CidrBlock' => array( + 'type' => 'string', + 'sentAs' => 'cidrBlock', + ), + 'OwnerId' => array( + 'type' => 'string', + 'sentAs' => 'ownerId', + ), + 'VpcId' => array( + 'type' => 'string', + 'sentAs' => 'vpcId', + ), + ), + ), + 'Status' => array( + 'type' => 'object', + 'sentAs' => 'status', + 'properties' => array( + 'Code' => array( + 'type' => 'string', + 'sentAs' => 'code', + ), + 'Message' => array( + 'type' => 'string', + 'sentAs' => 'message', + ), + ), + ), + 'Tags' => array( + 'type' => 'array', + 'sentAs' => 'tagSet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + 'sentAs' => 'key', + ), + 'Value' => array( + 'type' => 'string', + 'sentAs' => 'value', + ), + ), + ), + ), + 'VpcPeeringConnectionId' => array( + 'type' => 'string', + 'sentAs' => 'vpcPeeringConnectionId', + ), + ), + ), + ), + ), + 'CreateVpnConnectionResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'VpnConnection' => array( + 'type' => 'object', + 'location' => 'xml', + 'sentAs' => 'vpnConnection', + 'properties' => array( + 'VpnConnectionId' => array( + 'type' => 'string', + 'sentAs' => 'vpnConnectionId', + ), + 'State' => array( + 'type' => 'string', + 'sentAs' => 'state', + ), + 'CustomerGatewayConfiguration' => array( + 'type' => 'string', + 'sentAs' => 'customerGatewayConfiguration', + ), + 'Type' => array( + 'type' => 'string', + 'sentAs' => 'type', + ), + 'CustomerGatewayId' => array( + 'type' => 'string', + 'sentAs' => 'customerGatewayId', + ), + 'VpnGatewayId' => array( + 'type' => 'string', + 'sentAs' => 'vpnGatewayId', + ), + 'Tags' => array( + 'type' => 'array', + 'sentAs' => 'tagSet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + 'sentAs' => 'key', + ), + 'Value' => array( + 'type' => 'string', + 'sentAs' => 'value', + ), + ), + ), + ), + 'VgwTelemetry' => array( + 'type' => 'array', + 'sentAs' => 'vgwTelemetry', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'OutsideIpAddress' => array( + 'type' => 'string', + 'sentAs' => 'outsideIpAddress', + ), + 'Status' => array( + 'type' => 'string', + 'sentAs' => 'status', + ), + 'LastStatusChange' => array( + 'type' => 'string', + 'sentAs' => 'lastStatusChange', + ), + 'StatusMessage' => array( + 'type' => 'string', + 'sentAs' => 'statusMessage', + ), + 'AcceptedRouteCount' => array( + 'type' => 'numeric', + 'sentAs' => 'acceptedRouteCount', + ), + ), + ), + ), + 'Options' => array( + 'type' => 'object', + 'sentAs' => 'options', + 'properties' => array( + 'StaticRoutesOnly' => array( + 'type' => 'boolean', + 'sentAs' => 'staticRoutesOnly', + ), + ), + ), + 'Routes' => array( + 'type' => 'array', + 'sentAs' => 'routes', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'DestinationCidrBlock' => array( + 'type' => 'string', + 'sentAs' => 'destinationCidrBlock', + ), + 'Source' => array( + 'type' => 'string', + 'sentAs' => 'source', + ), + 'State' => array( + 'type' => 'string', + 'sentAs' => 'state', + ), + ), + ), + ), + ), + ), + ), + ), + 'CreateVpnGatewayResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'VpnGateway' => array( + 'type' => 'object', + 'location' => 'xml', + 'sentAs' => 'vpnGateway', + 'properties' => array( + 'VpnGatewayId' => array( + 'type' => 'string', + 'sentAs' => 'vpnGatewayId', + ), + 'State' => array( + 'type' => 'string', + 'sentAs' => 'state', + ), + 'Type' => array( + 'type' => 'string', + 'sentAs' => 'type', + ), + 'AvailabilityZone' => array( + 'type' => 'string', + 'sentAs' => 'availabilityZone', + ), + 'VpcAttachments' => array( + 'type' => 'array', + 'sentAs' => 'attachments', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'VpcId' => array( + 'type' => 'string', + 'sentAs' => 'vpcId', + ), + 'State' => array( + 'type' => 'string', + 'sentAs' => 'state', + ), + ), + ), + ), + 'Tags' => array( + 'type' => 'array', + 'sentAs' => 'tagSet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + 'sentAs' => 'key', + ), + 'Value' => array( + 'type' => 'string', + 'sentAs' => 'value', + ), + ), + ), + ), + ), + ), + ), + ), + 'DeleteVpcPeeringConnectionResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'Return' => array( + 'type' => 'boolean', + 'location' => 'xml', + 'sentAs' => 'return', + ), + ), + ), + 'DescribeAccountAttributesResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'AccountAttributes' => array( + 'type' => 'array', + 'location' => 'xml', + 'sentAs' => 'accountAttributeSet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'AttributeName' => array( + 'type' => 'string', + 'sentAs' => 'attributeName', + ), + 'AttributeValues' => array( + 'type' => 'array', + 'sentAs' => 'attributeValueSet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'AttributeValue' => array( + 'type' => 'string', + 'sentAs' => 'attributeValue', + ), + ), + ), + ), + ), + ), + ), + ), + ), + 'DescribeAddressesResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'Addresses' => array( + 'type' => 'array', + 'location' => 'xml', + 'sentAs' => 'addressesSet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'InstanceId' => array( + 'type' => 'string', + 'sentAs' => 'instanceId', + ), + 'PublicIp' => array( + 'type' => 'string', + 'sentAs' => 'publicIp', + ), + 'AllocationId' => array( + 'type' => 'string', + 'sentAs' => 'allocationId', + ), + 'AssociationId' => array( + 'type' => 'string', + 'sentAs' => 'associationId', + ), + 'Domain' => array( + 'type' => 'string', + 'sentAs' => 'domain', + ), + 'NetworkInterfaceId' => array( + 'type' => 'string', + 'sentAs' => 'networkInterfaceId', + ), + 'NetworkInterfaceOwnerId' => array( + 'type' => 'string', + 'sentAs' => 'networkInterfaceOwnerId', + ), + 'PrivateIpAddress' => array( + 'type' => 'string', + 'sentAs' => 'privateIpAddress', + ), + ), + ), + ), + ), + ), + 'DescribeAvailabilityZonesResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'AvailabilityZones' => array( + 'type' => 'array', + 'location' => 'xml', + 'sentAs' => 'availabilityZoneInfo', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'ZoneName' => array( + 'type' => 'string', + 'sentAs' => 'zoneName', + ), + 'State' => array( + 'type' => 'string', + 'sentAs' => 'zoneState', + ), + 'RegionName' => array( + 'type' => 'string', + 'sentAs' => 'regionName', + ), + 'Messages' => array( + 'type' => 'array', + 'sentAs' => 'messageSet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'Message' => array( + 'type' => 'string', + 'sentAs' => 'message', + ), + ), + ), + ), + ), + ), + ), + ), + ), + 'DescribeBundleTasksResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'BundleTasks' => array( + 'type' => 'array', + 'location' => 'xml', + 'sentAs' => 'bundleInstanceTasksSet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'InstanceId' => array( + 'type' => 'string', + 'sentAs' => 'instanceId', + ), + 'BundleId' => array( + 'type' => 'string', + 'sentAs' => 'bundleId', + ), + 'State' => array( + 'type' => 'string', + 'sentAs' => 'state', + ), + 'StartTime' => array( + 'type' => 'string', + 'sentAs' => 'startTime', + ), + 'UpdateTime' => array( + 'type' => 'string', + 'sentAs' => 'updateTime', + ), + 'Storage' => array( + 'type' => 'object', + 'sentAs' => 'storage', + 'properties' => array( + 'S3' => array( + 'type' => 'object', + 'properties' => array( + 'Bucket' => array( + 'type' => 'string', + 'sentAs' => 'bucket', + ), + 'Prefix' => array( + 'type' => 'string', + 'sentAs' => 'prefix', + ), + 'AWSAccessKeyId' => array( + 'type' => 'string', + ), + 'UploadPolicy' => array( + 'type' => 'string', + 'sentAs' => 'uploadPolicy', + ), + 'UploadPolicySignature' => array( + 'type' => 'string', + 'sentAs' => 'uploadPolicySignature', + ), + ), + ), + ), + ), + 'Progress' => array( + 'type' => 'string', + 'sentAs' => 'progress', + ), + 'BundleTaskError' => array( + 'type' => 'object', + 'sentAs' => 'error', + 'properties' => array( + 'Code' => array( + 'type' => 'string', + 'sentAs' => 'code', + ), + 'Message' => array( + 'type' => 'string', + 'sentAs' => 'message', + ), + ), + ), + ), + ), + ), + ), + ), + 'DescribeClassicLinkInstancesResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'Instances' => array( + 'type' => 'array', + 'location' => 'xml', + 'sentAs' => 'instancesSet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'InstanceId' => array( + 'type' => 'string', + 'sentAs' => 'instanceId', + ), + 'VpcId' => array( + 'type' => 'string', + 'sentAs' => 'vpcId', + ), + 'Groups' => array( + 'type' => 'array', + 'sentAs' => 'groupSet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'GroupName' => array( + 'type' => 'string', + 'sentAs' => 'groupName', + ), + 'GroupId' => array( + 'type' => 'string', + 'sentAs' => 'groupId', + ), + ), + ), + ), + 'Tags' => array( + 'type' => 'array', + 'sentAs' => 'tagSet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + 'sentAs' => 'key', + ), + 'Value' => array( + 'type' => 'string', + 'sentAs' => 'value', + ), + ), + ), + ), + ), + ), + ), + 'NextToken' => array( + 'type' => 'string', + 'location' => 'xml', + 'sentAs' => 'nextToken', + ), + ), + ), + 'DescribeConversionTasksResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'ConversionTasks' => array( + 'type' => 'array', + 'location' => 'xml', + 'sentAs' => 'conversionTasks', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'ConversionTaskId' => array( + 'type' => 'string', + 'sentAs' => 'conversionTaskId', + ), + 'ExpirationTime' => array( + 'type' => 'string', + 'sentAs' => 'expirationTime', + ), + 'ImportInstance' => array( + 'type' => 'object', + 'sentAs' => 'importInstance', + 'properties' => array( + 'Volumes' => array( + 'type' => 'array', + 'sentAs' => 'volumes', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'BytesConverted' => array( + 'type' => 'numeric', + 'sentAs' => 'bytesConverted', + ), + 'AvailabilityZone' => array( + 'type' => 'string', + 'sentAs' => 'availabilityZone', + ), + 'Image' => array( + 'type' => 'object', + 'sentAs' => 'image', + 'properties' => array( + 'Format' => array( + 'type' => 'string', + 'sentAs' => 'format', + ), + 'Size' => array( + 'type' => 'numeric', + 'sentAs' => 'size', + ), + 'ImportManifestUrl' => array( + 'type' => 'string', + 'sentAs' => 'importManifestUrl', + ), + 'Checksum' => array( + 'type' => 'string', + 'sentAs' => 'checksum', + ), + ), + ), + 'Volume' => array( + 'type' => 'object', + 'sentAs' => 'volume', + 'properties' => array( + 'Size' => array( + 'type' => 'numeric', + 'sentAs' => 'size', + ), + 'Id' => array( + 'type' => 'string', + 'sentAs' => 'id', + ), + ), + ), + 'Status' => array( + 'type' => 'string', + 'sentAs' => 'status', + ), + 'StatusMessage' => array( + 'type' => 'string', + 'sentAs' => 'statusMessage', + ), + 'Description' => array( + 'type' => 'string', + 'sentAs' => 'description', + ), + ), + ), + ), + 'InstanceId' => array( + 'type' => 'string', + 'sentAs' => 'instanceId', + ), + 'Platform' => array( + 'type' => 'string', + 'sentAs' => 'platform', + ), + 'Description' => array( + 'type' => 'string', + 'sentAs' => 'description', + ), + ), + ), + 'ImportVolume' => array( + 'type' => 'object', + 'sentAs' => 'importVolume', + 'properties' => array( + 'BytesConverted' => array( + 'type' => 'numeric', + 'sentAs' => 'bytesConverted', + ), + 'AvailabilityZone' => array( + 'type' => 'string', + 'sentAs' => 'availabilityZone', + ), + 'Description' => array( + 'type' => 'string', + 'sentAs' => 'description', + ), + 'Image' => array( + 'type' => 'object', + 'sentAs' => 'image', + 'properties' => array( + 'Format' => array( + 'type' => 'string', + 'sentAs' => 'format', + ), + 'Size' => array( + 'type' => 'numeric', + 'sentAs' => 'size', + ), + 'ImportManifestUrl' => array( + 'type' => 'string', + 'sentAs' => 'importManifestUrl', + ), + 'Checksum' => array( + 'type' => 'string', + 'sentAs' => 'checksum', + ), + ), + ), + 'Volume' => array( + 'type' => 'object', + 'sentAs' => 'volume', + 'properties' => array( + 'Size' => array( + 'type' => 'numeric', + 'sentAs' => 'size', + ), + 'Id' => array( + 'type' => 'string', + 'sentAs' => 'id', + ), + ), + ), + ), + ), + 'State' => array( + 'type' => 'string', + 'sentAs' => 'state', + ), + 'StatusMessage' => array( + 'type' => 'string', + 'sentAs' => 'statusMessage', + ), + 'Tags' => array( + 'type' => 'array', + 'sentAs' => 'tagSet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + 'sentAs' => 'key', + ), + 'Value' => array( + 'type' => 'string', + 'sentAs' => 'value', + ), + ), + ), + ), + ), + ), + ), + ), + ), + 'DescribeCustomerGatewaysResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'CustomerGateways' => array( + 'type' => 'array', + 'location' => 'xml', + 'sentAs' => 'customerGatewaySet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'CustomerGatewayId' => array( + 'type' => 'string', + 'sentAs' => 'customerGatewayId', + ), + 'State' => array( + 'type' => 'string', + 'sentAs' => 'state', + ), + 'Type' => array( + 'type' => 'string', + 'sentAs' => 'type', + ), + 'IpAddress' => array( + 'type' => 'string', + 'sentAs' => 'ipAddress', + ), + 'BgpAsn' => array( + 'type' => 'string', + 'sentAs' => 'bgpAsn', + ), + 'Tags' => array( + 'type' => 'array', + 'sentAs' => 'tagSet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + 'sentAs' => 'key', + ), + 'Value' => array( + 'type' => 'string', + 'sentAs' => 'value', + ), + ), + ), + ), + ), + ), + ), + ), + ), + 'DescribeDhcpOptionsResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'DhcpOptions' => array( + 'type' => 'array', + 'location' => 'xml', + 'sentAs' => 'dhcpOptionsSet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'DhcpOptionsId' => array( + 'type' => 'string', + 'sentAs' => 'dhcpOptionsId', + ), + 'DhcpConfigurations' => array( + 'type' => 'array', + 'sentAs' => 'dhcpConfigurationSet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + 'sentAs' => 'key', + ), + 'Values' => array( + 'type' => 'array', + 'sentAs' => 'valueSet', + 'items' => array( + 'name' => 'item', + 'type' => 'string', + 'sentAs' => 'item', + ), + ), + ), + ), + ), + 'Tags' => array( + 'type' => 'array', + 'sentAs' => 'tagSet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + 'sentAs' => 'key', + ), + 'Value' => array( + 'type' => 'string', + 'sentAs' => 'value', + ), + ), + ), + ), + ), + ), + ), + ), + ), + 'DescribeExportTasksResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'ExportTasks' => array( + 'type' => 'array', + 'location' => 'xml', + 'sentAs' => 'exportTaskSet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'ExportTaskId' => array( + 'type' => 'string', + 'sentAs' => 'exportTaskId', + ), + 'Description' => array( + 'type' => 'string', + 'sentAs' => 'description', + ), + 'State' => array( + 'type' => 'string', + 'sentAs' => 'state', + ), + 'StatusMessage' => array( + 'type' => 'string', + 'sentAs' => 'statusMessage', + ), + 'InstanceExportDetails' => array( + 'type' => 'object', + 'sentAs' => 'instanceExport', + 'properties' => array( + 'InstanceId' => array( + 'type' => 'string', + 'sentAs' => 'instanceId', + ), + 'TargetEnvironment' => array( + 'type' => 'string', + 'sentAs' => 'targetEnvironment', + ), + ), + ), + 'ExportToS3Task' => array( + 'type' => 'object', + 'sentAs' => 'exportToS3', + 'properties' => array( + 'DiskImageFormat' => array( + 'type' => 'string', + 'sentAs' => 'diskImageFormat', + ), + 'ContainerFormat' => array( + 'type' => 'string', + 'sentAs' => 'containerFormat', + ), + 'S3Bucket' => array( + 'type' => 'string', + 'sentAs' => 's3Bucket', + ), + 'S3Key' => array( + 'type' => 'string', + 'sentAs' => 's3Key', + ), + ), + ), + ), + ), + ), + ), + ), + 'imageAttribute' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'ImageId' => array( + 'type' => 'string', + 'location' => 'xml', + 'sentAs' => 'imageId', + ), + 'LaunchPermissions' => array( + 'type' => 'array', + 'location' => 'xml', + 'sentAs' => 'launchPermission', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'UserId' => array( + 'type' => 'string', + 'sentAs' => 'userId', + ), + 'Group' => array( + 'type' => 'string', + 'sentAs' => 'group', + ), + ), + ), + ), + 'ProductCodes' => array( + 'type' => 'array', + 'location' => 'xml', + 'sentAs' => 'productCodes', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'ProductCodeId' => array( + 'type' => 'string', + 'sentAs' => 'productCode', + ), + 'ProductCodeType' => array( + 'type' => 'string', + 'sentAs' => 'type', + ), + ), + ), + ), + 'KernelId' => array( + 'type' => 'object', + 'location' => 'xml', + 'sentAs' => 'kernel', + 'properties' => array( + 'Value' => array( + 'type' => 'string', + 'sentAs' => 'value', + ), + ), + ), + 'RamdiskId' => array( + 'type' => 'object', + 'location' => 'xml', + 'sentAs' => 'ramdisk', + 'properties' => array( + 'Value' => array( + 'type' => 'string', + 'sentAs' => 'value', + ), + ), + ), + 'Description' => array( + 'type' => 'object', + 'location' => 'xml', + 'sentAs' => 'description', + 'properties' => array( + 'Value' => array( + 'type' => 'string', + 'sentAs' => 'value', + ), + ), + ), + 'SriovNetSupport' => array( + 'type' => 'object', + 'location' => 'xml', + 'sentAs' => 'sriovNetSupport', + 'properties' => array( + 'Value' => array( + 'type' => 'string', + 'sentAs' => 'value', + ), + ), + ), + 'BlockDeviceMappings' => array( + 'type' => 'array', + 'location' => 'xml', + 'sentAs' => 'blockDeviceMapping', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'VirtualName' => array( + 'type' => 'string', + 'sentAs' => 'virtualName', + ), + 'DeviceName' => array( + 'type' => 'string', + 'sentAs' => 'deviceName', + ), + 'Ebs' => array( + 'type' => 'object', + 'sentAs' => 'ebs', + 'properties' => array( + 'SnapshotId' => array( + 'type' => 'string', + 'sentAs' => 'snapshotId', + ), + 'VolumeSize' => array( + 'type' => 'numeric', + 'sentAs' => 'volumeSize', + ), + 'DeleteOnTermination' => array( + 'type' => 'boolean', + 'sentAs' => 'deleteOnTermination', + ), + 'VolumeType' => array( + 'type' => 'string', + 'sentAs' => 'volumeType', + ), + 'Iops' => array( + 'type' => 'numeric', + 'sentAs' => 'iops', + ), + 'Encrypted' => array( + 'type' => 'boolean', + 'sentAs' => 'encrypted', + ), + ), + ), + 'NoDevice' => array( + 'type' => 'string', + 'sentAs' => 'noDevice', + ), + ), + ), + ), + ), + ), + 'DescribeImagesResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'Images' => array( + 'type' => 'array', + 'location' => 'xml', + 'sentAs' => 'imagesSet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'ImageId' => array( + 'type' => 'string', + 'sentAs' => 'imageId', + ), + 'ImageLocation' => array( + 'type' => 'string', + 'sentAs' => 'imageLocation', + ), + 'State' => array( + 'type' => 'string', + 'sentAs' => 'imageState', + ), + 'OwnerId' => array( + 'type' => 'string', + 'sentAs' => 'imageOwnerId', + ), + 'CreationDate' => array( + 'type' => 'string', + 'sentAs' => 'creationDate', + ), + 'Public' => array( + 'type' => 'boolean', + 'sentAs' => 'isPublic', + ), + 'ProductCodes' => array( + 'type' => 'array', + 'sentAs' => 'productCodes', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'ProductCodeId' => array( + 'type' => 'string', + 'sentAs' => 'productCode', + ), + 'ProductCodeType' => array( + 'type' => 'string', + 'sentAs' => 'type', + ), + ), + ), + ), + 'Architecture' => array( + 'type' => 'string', + 'sentAs' => 'architecture', + ), + 'ImageType' => array( + 'type' => 'string', + 'sentAs' => 'imageType', + ), + 'KernelId' => array( + 'type' => 'string', + 'sentAs' => 'kernelId', + ), + 'RamdiskId' => array( + 'type' => 'string', + 'sentAs' => 'ramdiskId', + ), + 'Platform' => array( + 'type' => 'string', + 'sentAs' => 'platform', + ), + 'SriovNetSupport' => array( + 'type' => 'string', + 'sentAs' => 'sriovNetSupport', + ), + 'StateReason' => array( + 'type' => 'object', + 'sentAs' => 'stateReason', + 'properties' => array( + 'Code' => array( + 'type' => 'string', + 'sentAs' => 'code', + ), + 'Message' => array( + 'type' => 'string', + 'sentAs' => 'message', + ), + ), + ), + 'ImageOwnerAlias' => array( + 'type' => 'string', + 'sentAs' => 'imageOwnerAlias', + ), + 'Name' => array( + 'type' => 'string', + 'sentAs' => 'name', + ), + 'Description' => array( + 'type' => 'string', + 'sentAs' => 'description', + ), + 'RootDeviceType' => array( + 'type' => 'string', + 'sentAs' => 'rootDeviceType', + ), + 'RootDeviceName' => array( + 'type' => 'string', + 'sentAs' => 'rootDeviceName', + ), + 'BlockDeviceMappings' => array( + 'type' => 'array', + 'sentAs' => 'blockDeviceMapping', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'VirtualName' => array( + 'type' => 'string', + 'sentAs' => 'virtualName', + ), + 'DeviceName' => array( + 'type' => 'string', + 'sentAs' => 'deviceName', + ), + 'Ebs' => array( + 'type' => 'object', + 'sentAs' => 'ebs', + 'properties' => array( + 'SnapshotId' => array( + 'type' => 'string', + 'sentAs' => 'snapshotId', + ), + 'VolumeSize' => array( + 'type' => 'numeric', + 'sentAs' => 'volumeSize', + ), + 'DeleteOnTermination' => array( + 'type' => 'boolean', + 'sentAs' => 'deleteOnTermination', + ), + 'VolumeType' => array( + 'type' => 'string', + 'sentAs' => 'volumeType', + ), + 'Iops' => array( + 'type' => 'numeric', + 'sentAs' => 'iops', + ), + 'Encrypted' => array( + 'type' => 'boolean', + 'sentAs' => 'encrypted', + ), + ), + ), + 'NoDevice' => array( + 'type' => 'string', + 'sentAs' => 'noDevice', + ), + ), + ), + ), + 'VirtualizationType' => array( + 'type' => 'string', + 'sentAs' => 'virtualizationType', + ), + 'Tags' => array( + 'type' => 'array', + 'sentAs' => 'tagSet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + 'sentAs' => 'key', + ), + 'Value' => array( + 'type' => 'string', + 'sentAs' => 'value', + ), + ), + ), + ), + 'Hypervisor' => array( + 'type' => 'string', + 'sentAs' => 'hypervisor', + ), + ), + ), + ), + ), + ), + 'DescribeImportImageTasksResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'ImportImageTasks' => array( + 'type' => 'array', + 'location' => 'xml', + 'sentAs' => 'importImageTaskSet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'ImportTaskId' => array( + 'type' => 'string', + 'sentAs' => 'importTaskId', + ), + 'Architecture' => array( + 'type' => 'string', + 'sentAs' => 'architecture', + ), + 'LicenseType' => array( + 'type' => 'string', + 'sentAs' => 'licenseType', + ), + 'Platform' => array( + 'type' => 'string', + 'sentAs' => 'platform', + ), + 'Hypervisor' => array( + 'type' => 'string', + 'sentAs' => 'hypervisor', + ), + 'Description' => array( + 'type' => 'string', + 'sentAs' => 'description', + ), + 'SnapshotDetails' => array( + 'type' => 'array', + 'sentAs' => 'snapshotDetailSet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'DiskImageSize' => array( + 'type' => 'numeric', + 'sentAs' => 'diskImageSize', + ), + 'Description' => array( + 'type' => 'string', + 'sentAs' => 'description', + ), + 'Format' => array( + 'type' => 'string', + 'sentAs' => 'format', + ), + 'Url' => array( + 'type' => 'string', + 'sentAs' => 'url', + ), + 'UserBucket' => array( + 'type' => 'object', + 'sentAs' => 'userBucket', + 'properties' => array( + 'S3Bucket' => array( + 'type' => 'string', + 'sentAs' => 's3Bucket', + ), + 'S3Key' => array( + 'type' => 'string', + 'sentAs' => 's3Key', + ), + ), + ), + 'DeviceName' => array( + 'type' => 'string', + 'sentAs' => 'deviceName', + ), + 'SnapshotId' => array( + 'type' => 'string', + 'sentAs' => 'snapshotId', + ), + 'Progress' => array( + 'type' => 'string', + 'sentAs' => 'progress', + ), + 'StatusMessage' => array( + 'type' => 'string', + 'sentAs' => 'statusMessage', + ), + 'Status' => array( + 'type' => 'string', + 'sentAs' => 'status', + ), + ), + ), + ), + 'ImageId' => array( + 'type' => 'string', + 'sentAs' => 'imageId', + ), + 'Progress' => array( + 'type' => 'string', + 'sentAs' => 'progress', + ), + 'StatusMessage' => array( + 'type' => 'string', + 'sentAs' => 'statusMessage', + ), + 'Status' => array( + 'type' => 'string', + 'sentAs' => 'status', + ), + ), + ), + ), + 'NextToken' => array( + 'type' => 'string', + 'location' => 'xml', + 'sentAs' => 'nextToken', + ), + ), + ), + 'DescribeImportSnapshotTasksResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'ImportSnapshotTasks' => array( + 'type' => 'array', + 'location' => 'xml', + 'sentAs' => 'importSnapshotTaskSet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'ImportTaskId' => array( + 'type' => 'string', + 'sentAs' => 'importTaskId', + ), + 'SnapshotTaskDetail' => array( + 'type' => 'object', + 'sentAs' => 'snapshotTaskDetail', + 'properties' => array( + 'DiskImageSize' => array( + 'type' => 'numeric', + 'sentAs' => 'diskImageSize', + ), + 'Description' => array( + 'type' => 'string', + 'sentAs' => 'description', + ), + 'Format' => array( + 'type' => 'string', + 'sentAs' => 'format', + ), + 'Url' => array( + 'type' => 'string', + 'sentAs' => 'url', + ), + 'UserBucket' => array( + 'type' => 'object', + 'sentAs' => 'userBucket', + 'properties' => array( + 'S3Bucket' => array( + 'type' => 'string', + 'sentAs' => 's3Bucket', + ), + 'S3Key' => array( + 'type' => 'string', + 'sentAs' => 's3Key', + ), + ), + ), + 'SnapshotId' => array( + 'type' => 'string', + 'sentAs' => 'snapshotId', + ), + 'Progress' => array( + 'type' => 'string', + 'sentAs' => 'progress', + ), + 'StatusMessage' => array( + 'type' => 'string', + 'sentAs' => 'statusMessage', + ), + 'Status' => array( + 'type' => 'string', + 'sentAs' => 'status', + ), + ), + ), + 'Description' => array( + 'type' => 'string', + 'sentAs' => 'description', + ), + ), + ), + ), + 'NextToken' => array( + 'type' => 'string', + 'location' => 'xml', + 'sentAs' => 'nextToken', + ), + ), + ), + 'InstanceAttribute' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'InstanceId' => array( + 'type' => 'string', + 'location' => 'xml', + 'sentAs' => 'instanceId', + ), + 'InstanceType' => array( + 'type' => 'object', + 'location' => 'xml', + 'sentAs' => 'instanceType', + 'properties' => array( + 'Value' => array( + 'type' => 'string', + 'sentAs' => 'value', + ), + ), + ), + 'KernelId' => array( + 'type' => 'object', + 'location' => 'xml', + 'sentAs' => 'kernel', + 'properties' => array( + 'Value' => array( + 'type' => 'string', + 'sentAs' => 'value', + ), + ), + ), + 'RamdiskId' => array( + 'type' => 'object', + 'location' => 'xml', + 'sentAs' => 'ramdisk', + 'properties' => array( + 'Value' => array( + 'type' => 'string', + 'sentAs' => 'value', + ), + ), + ), + 'UserData' => array( + 'type' => 'object', + 'location' => 'xml', + 'sentAs' => 'userData', + 'properties' => array( + 'Value' => array( + 'type' => 'string', + 'sentAs' => 'value', + ), + ), + ), + 'DisableApiTermination' => array( + 'type' => 'object', + 'location' => 'xml', + 'sentAs' => 'disableApiTermination', + 'properties' => array( + 'Value' => array( + 'type' => 'boolean', + 'sentAs' => 'value', + ), + ), + ), + 'InstanceInitiatedShutdownBehavior' => array( + 'type' => 'object', + 'location' => 'xml', + 'sentAs' => 'instanceInitiatedShutdownBehavior', + 'properties' => array( + 'Value' => array( + 'type' => 'string', + 'sentAs' => 'value', + ), + ), + ), + 'RootDeviceName' => array( + 'type' => 'object', + 'location' => 'xml', + 'sentAs' => 'rootDeviceName', + 'properties' => array( + 'Value' => array( + 'type' => 'string', + 'sentAs' => 'value', + ), + ), + ), + 'BlockDeviceMappings' => array( + 'type' => 'array', + 'location' => 'xml', + 'sentAs' => 'blockDeviceMapping', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'DeviceName' => array( + 'type' => 'string', + 'sentAs' => 'deviceName', + ), + 'Ebs' => array( + 'type' => 'object', + 'sentAs' => 'ebs', + 'properties' => array( + 'VolumeId' => array( + 'type' => 'string', + 'sentAs' => 'volumeId', + ), + 'Status' => array( + 'type' => 'string', + 'sentAs' => 'status', + ), + 'AttachTime' => array( + 'type' => 'string', + 'sentAs' => 'attachTime', + ), + 'DeleteOnTermination' => array( + 'type' => 'boolean', + 'sentAs' => 'deleteOnTermination', + ), + ), + ), + ), + ), + ), + 'ProductCodes' => array( + 'type' => 'array', + 'location' => 'xml', + 'sentAs' => 'productCodes', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'ProductCodeId' => array( + 'type' => 'string', + 'sentAs' => 'productCode', + ), + 'ProductCodeType' => array( + 'type' => 'string', + 'sentAs' => 'type', + ), + ), + ), + ), + 'EbsOptimized' => array( + 'type' => 'object', + 'location' => 'xml', + 'sentAs' => 'ebsOptimized', + 'properties' => array( + 'Value' => array( + 'type' => 'boolean', + 'sentAs' => 'value', + ), + ), + ), + 'SriovNetSupport' => array( + 'type' => 'object', + 'location' => 'xml', + 'sentAs' => 'sriovNetSupport', + 'properties' => array( + 'Value' => array( + 'type' => 'string', + 'sentAs' => 'value', + ), + ), + ), + 'SourceDestCheck' => array( + 'type' => 'object', + 'location' => 'xml', + 'sentAs' => 'sourceDestCheck', + 'properties' => array( + 'Value' => array( + 'type' => 'boolean', + 'sentAs' => 'value', + ), + ), + ), + 'Groups' => array( + 'type' => 'array', + 'location' => 'xml', + 'sentAs' => 'groupSet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'GroupName' => array( + 'type' => 'string', + 'sentAs' => 'groupName', + ), + 'GroupId' => array( + 'type' => 'string', + 'sentAs' => 'groupId', + ), + ), + ), + ), + ), + ), + 'DescribeInstanceStatusResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'InstanceStatuses' => array( + 'type' => 'array', + 'location' => 'xml', + 'sentAs' => 'instanceStatusSet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'InstanceId' => array( + 'type' => 'string', + 'sentAs' => 'instanceId', + ), + 'AvailabilityZone' => array( + 'type' => 'string', + 'sentAs' => 'availabilityZone', + ), + 'Events' => array( + 'type' => 'array', + 'sentAs' => 'eventsSet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'Code' => array( + 'type' => 'string', + 'sentAs' => 'code', + ), + 'Description' => array( + 'type' => 'string', + 'sentAs' => 'description', + ), + 'NotBefore' => array( + 'type' => 'string', + 'sentAs' => 'notBefore', + ), + 'NotAfter' => array( + 'type' => 'string', + 'sentAs' => 'notAfter', + ), + ), + ), + ), + 'InstanceState' => array( + 'type' => 'object', + 'sentAs' => 'instanceState', + 'properties' => array( + 'Code' => array( + 'type' => 'numeric', + 'sentAs' => 'code', + ), + 'Name' => array( + 'type' => 'string', + 'sentAs' => 'name', + ), + ), + ), + 'SystemStatus' => array( + 'type' => 'object', + 'sentAs' => 'systemStatus', + 'properties' => array( + 'Status' => array( + 'type' => 'string', + 'sentAs' => 'status', + ), + 'Details' => array( + 'type' => 'array', + 'sentAs' => 'details', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'Name' => array( + 'type' => 'string', + 'sentAs' => 'name', + ), + 'Status' => array( + 'type' => 'string', + 'sentAs' => 'status', + ), + 'ImpairedSince' => array( + 'type' => 'string', + 'sentAs' => 'impairedSince', + ), + ), + ), + ), + ), + ), + 'InstanceStatus' => array( + 'type' => 'object', + 'sentAs' => 'instanceStatus', + 'properties' => array( + 'Status' => array( + 'type' => 'string', + 'sentAs' => 'status', + ), + 'Details' => array( + 'type' => 'array', + 'sentAs' => 'details', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'Name' => array( + 'type' => 'string', + 'sentAs' => 'name', + ), + 'Status' => array( + 'type' => 'string', + 'sentAs' => 'status', + ), + 'ImpairedSince' => array( + 'type' => 'string', + 'sentAs' => 'impairedSince', + ), + ), + ), + ), + ), + ), + ), + ), + ), + 'NextToken' => array( + 'type' => 'string', + 'location' => 'xml', + 'sentAs' => 'nextToken', + ), + ), + ), + 'DescribeInstancesResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'Reservations' => array( + 'type' => 'array', + 'location' => 'xml', + 'sentAs' => 'reservationSet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'ReservationId' => array( + 'type' => 'string', + 'sentAs' => 'reservationId', + ), + 'OwnerId' => array( + 'type' => 'string', + 'sentAs' => 'ownerId', + ), + 'RequesterId' => array( + 'type' => 'string', + 'sentAs' => 'requesterId', + ), + 'Groups' => array( + 'type' => 'array', + 'sentAs' => 'groupSet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'GroupName' => array( + 'type' => 'string', + 'sentAs' => 'groupName', + ), + 'GroupId' => array( + 'type' => 'string', + 'sentAs' => 'groupId', + ), + ), + ), + ), + 'Instances' => array( + 'type' => 'array', + 'sentAs' => 'instancesSet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'InstanceId' => array( + 'type' => 'string', + 'sentAs' => 'instanceId', + ), + 'ImageId' => array( + 'type' => 'string', + 'sentAs' => 'imageId', + ), + 'State' => array( + 'type' => 'object', + 'sentAs' => 'instanceState', + 'properties' => array( + 'Code' => array( + 'type' => 'numeric', + 'sentAs' => 'code', + ), + 'Name' => array( + 'type' => 'string', + 'sentAs' => 'name', + ), + ), + ), + 'PrivateDnsName' => array( + 'type' => 'string', + 'sentAs' => 'privateDnsName', + ), + 'PublicDnsName' => array( + 'type' => 'string', + 'sentAs' => 'dnsName', + ), + 'StateTransitionReason' => array( + 'type' => 'string', + 'sentAs' => 'reason', + ), + 'KeyName' => array( + 'type' => 'string', + 'sentAs' => 'keyName', + ), + 'AmiLaunchIndex' => array( + 'type' => 'numeric', + 'sentAs' => 'amiLaunchIndex', + ), + 'ProductCodes' => array( + 'type' => 'array', + 'sentAs' => 'productCodes', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'ProductCodeId' => array( + 'type' => 'string', + 'sentAs' => 'productCode', + ), + 'ProductCodeType' => array( + 'type' => 'string', + 'sentAs' => 'type', + ), + ), + ), + ), + 'InstanceType' => array( + 'type' => 'string', + 'sentAs' => 'instanceType', + ), + 'LaunchTime' => array( + 'type' => 'string', + 'sentAs' => 'launchTime', + ), + 'Placement' => array( + 'type' => 'object', + 'sentAs' => 'placement', + 'properties' => array( + 'AvailabilityZone' => array( + 'type' => 'string', + 'sentAs' => 'availabilityZone', + ), + 'GroupName' => array( + 'type' => 'string', + 'sentAs' => 'groupName', + ), + 'Tenancy' => array( + 'type' => 'string', + 'sentAs' => 'tenancy', + ), + ), + ), + 'KernelId' => array( + 'type' => 'string', + 'sentAs' => 'kernelId', + ), + 'RamdiskId' => array( + 'type' => 'string', + 'sentAs' => 'ramdiskId', + ), + 'Platform' => array( + 'type' => 'string', + 'sentAs' => 'platform', + ), + 'Monitoring' => array( + 'type' => 'object', + 'sentAs' => 'monitoring', + 'properties' => array( + 'State' => array( + 'type' => 'string', + 'sentAs' => 'state', + ), + ), + ), + 'SubnetId' => array( + 'type' => 'string', + 'sentAs' => 'subnetId', + ), + 'VpcId' => array( + 'type' => 'string', + 'sentAs' => 'vpcId', + ), + 'PrivateIpAddress' => array( + 'type' => 'string', + 'sentAs' => 'privateIpAddress', + ), + 'PublicIpAddress' => array( + 'type' => 'string', + 'sentAs' => 'ipAddress', + ), + 'StateReason' => array( + 'type' => 'object', + 'sentAs' => 'stateReason', + 'properties' => array( + 'Code' => array( + 'type' => 'string', + 'sentAs' => 'code', + ), + 'Message' => array( + 'type' => 'string', + 'sentAs' => 'message', + ), + ), + ), + 'Architecture' => array( + 'type' => 'string', + 'sentAs' => 'architecture', + ), + 'RootDeviceType' => array( + 'type' => 'string', + 'sentAs' => 'rootDeviceType', + ), + 'RootDeviceName' => array( + 'type' => 'string', + 'sentAs' => 'rootDeviceName', + ), + 'BlockDeviceMappings' => array( + 'type' => 'array', + 'sentAs' => 'blockDeviceMapping', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'DeviceName' => array( + 'type' => 'string', + 'sentAs' => 'deviceName', + ), + 'Ebs' => array( + 'type' => 'object', + 'sentAs' => 'ebs', + 'properties' => array( + 'VolumeId' => array( + 'type' => 'string', + 'sentAs' => 'volumeId', + ), + 'Status' => array( + 'type' => 'string', + 'sentAs' => 'status', + ), + 'AttachTime' => array( + 'type' => 'string', + 'sentAs' => 'attachTime', + ), + 'DeleteOnTermination' => array( + 'type' => 'boolean', + 'sentAs' => 'deleteOnTermination', + ), + ), + ), + ), + ), + ), + 'VirtualizationType' => array( + 'type' => 'string', + 'sentAs' => 'virtualizationType', + ), + 'InstanceLifecycle' => array( + 'type' => 'string', + 'sentAs' => 'instanceLifecycle', + ), + 'SpotInstanceRequestId' => array( + 'type' => 'string', + 'sentAs' => 'spotInstanceRequestId', + ), + 'ClientToken' => array( + 'type' => 'string', + 'sentAs' => 'clientToken', + ), + 'Tags' => array( + 'type' => 'array', + 'sentAs' => 'tagSet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + 'sentAs' => 'key', + ), + 'Value' => array( + 'type' => 'string', + 'sentAs' => 'value', + ), + ), + ), + ), + 'SecurityGroups' => array( + 'type' => 'array', + 'sentAs' => 'groupSet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'GroupName' => array( + 'type' => 'string', + 'sentAs' => 'groupName', + ), + 'GroupId' => array( + 'type' => 'string', + 'sentAs' => 'groupId', + ), + ), + ), + ), + 'SourceDestCheck' => array( + 'type' => 'boolean', + 'sentAs' => 'sourceDestCheck', + ), + 'Hypervisor' => array( + 'type' => 'string', + 'sentAs' => 'hypervisor', + ), + 'NetworkInterfaces' => array( + 'type' => 'array', + 'sentAs' => 'networkInterfaceSet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'NetworkInterfaceId' => array( + 'type' => 'string', + 'sentAs' => 'networkInterfaceId', + ), + 'SubnetId' => array( + 'type' => 'string', + 'sentAs' => 'subnetId', + ), + 'VpcId' => array( + 'type' => 'string', + 'sentAs' => 'vpcId', + ), + 'Description' => array( + 'type' => 'string', + 'sentAs' => 'description', + ), + 'OwnerId' => array( + 'type' => 'string', + 'sentAs' => 'ownerId', + ), + 'Status' => array( + 'type' => 'string', + 'sentAs' => 'status', + ), + 'MacAddress' => array( + 'type' => 'string', + 'sentAs' => 'macAddress', + ), + 'PrivateIpAddress' => array( + 'type' => 'string', + 'sentAs' => 'privateIpAddress', + ), + 'PrivateDnsName' => array( + 'type' => 'string', + 'sentAs' => 'privateDnsName', + ), + 'SourceDestCheck' => array( + 'type' => 'boolean', + 'sentAs' => 'sourceDestCheck', + ), + 'Groups' => array( + 'type' => 'array', + 'sentAs' => 'groupSet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'GroupName' => array( + 'type' => 'string', + 'sentAs' => 'groupName', + ), + 'GroupId' => array( + 'type' => 'string', + 'sentAs' => 'groupId', + ), + ), + ), + ), + 'Attachment' => array( + 'type' => 'object', + 'sentAs' => 'attachment', + 'properties' => array( + 'AttachmentId' => array( + 'type' => 'string', + 'sentAs' => 'attachmentId', + ), + 'DeviceIndex' => array( + 'type' => 'numeric', + 'sentAs' => 'deviceIndex', + ), + 'Status' => array( + 'type' => 'string', + 'sentAs' => 'status', + ), + 'AttachTime' => array( + 'type' => 'string', + 'sentAs' => 'attachTime', + ), + 'DeleteOnTermination' => array( + 'type' => 'boolean', + 'sentAs' => 'deleteOnTermination', + ), + ), + ), + 'Association' => array( + 'type' => 'object', + 'sentAs' => 'association', + 'properties' => array( + 'PublicIp' => array( + 'type' => 'string', + 'sentAs' => 'publicIp', + ), + 'PublicDnsName' => array( + 'type' => 'string', + 'sentAs' => 'publicDnsName', + ), + 'IpOwnerId' => array( + 'type' => 'string', + 'sentAs' => 'ipOwnerId', + ), + ), + ), + 'PrivateIpAddresses' => array( + 'type' => 'array', + 'sentAs' => 'privateIpAddressesSet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'PrivateIpAddress' => array( + 'type' => 'string', + 'sentAs' => 'privateIpAddress', + ), + 'PrivateDnsName' => array( + 'type' => 'string', + 'sentAs' => 'privateDnsName', + ), + 'Primary' => array( + 'type' => 'boolean', + 'sentAs' => 'primary', + ), + 'Association' => array( + 'type' => 'object', + 'sentAs' => 'association', + 'properties' => array( + 'PublicIp' => array( + 'type' => 'string', + 'sentAs' => 'publicIp', + ), + 'PublicDnsName' => array( + 'type' => 'string', + 'sentAs' => 'publicDnsName', + ), + 'IpOwnerId' => array( + 'type' => 'string', + 'sentAs' => 'ipOwnerId', + ), + ), + ), + ), + ), + ), + ), + ), + ), + 'IamInstanceProfile' => array( + 'type' => 'object', + 'sentAs' => 'iamInstanceProfile', + 'properties' => array( + 'Arn' => array( + 'type' => 'string', + 'sentAs' => 'arn', + ), + 'Id' => array( + 'type' => 'string', + 'sentAs' => 'id', + ), + ), + ), + 'EbsOptimized' => array( + 'type' => 'boolean', + 'sentAs' => 'ebsOptimized', + ), + 'SriovNetSupport' => array( + 'type' => 'string', + 'sentAs' => 'sriovNetSupport', + ), + ), + ), + ), + ), + ), + ), + 'NextToken' => array( + 'type' => 'string', + 'location' => 'xml', + 'sentAs' => 'nextToken', + ), + ), + ), + 'DescribeInternetGatewaysResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'InternetGateways' => array( + 'type' => 'array', + 'location' => 'xml', + 'sentAs' => 'internetGatewaySet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'InternetGatewayId' => array( + 'type' => 'string', + 'sentAs' => 'internetGatewayId', + ), + 'Attachments' => array( + 'type' => 'array', + 'sentAs' => 'attachmentSet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'VpcId' => array( + 'type' => 'string', + 'sentAs' => 'vpcId', + ), + 'State' => array( + 'type' => 'string', + 'sentAs' => 'state', + ), + ), + ), + ), + 'Tags' => array( + 'type' => 'array', + 'sentAs' => 'tagSet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + 'sentAs' => 'key', + ), + 'Value' => array( + 'type' => 'string', + 'sentAs' => 'value', + ), + ), + ), + ), + ), + ), + ), + ), + ), + 'DescribeKeyPairsResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'KeyPairs' => array( + 'type' => 'array', + 'location' => 'xml', + 'sentAs' => 'keySet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'KeyName' => array( + 'type' => 'string', + 'sentAs' => 'keyName', + ), + 'KeyFingerprint' => array( + 'type' => 'string', + 'sentAs' => 'keyFingerprint', + ), + ), + ), + ), + ), + ), + 'DescribeNetworkAclsResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'NetworkAcls' => array( + 'type' => 'array', + 'location' => 'xml', + 'sentAs' => 'networkAclSet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'NetworkAclId' => array( + 'type' => 'string', + 'sentAs' => 'networkAclId', + ), + 'VpcId' => array( + 'type' => 'string', + 'sentAs' => 'vpcId', + ), + 'IsDefault' => array( + 'type' => 'boolean', + 'sentAs' => 'default', + ), + 'Entries' => array( + 'type' => 'array', + 'sentAs' => 'entrySet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'RuleNumber' => array( + 'type' => 'numeric', + 'sentAs' => 'ruleNumber', + ), + 'Protocol' => array( + 'type' => 'string', + 'sentAs' => 'protocol', + ), + 'RuleAction' => array( + 'type' => 'string', + 'sentAs' => 'ruleAction', + ), + 'Egress' => array( + 'type' => 'boolean', + 'sentAs' => 'egress', + ), + 'CidrBlock' => array( + 'type' => 'string', + 'sentAs' => 'cidrBlock', + ), + 'IcmpTypeCode' => array( + 'type' => 'object', + 'sentAs' => 'icmpTypeCode', + 'properties' => array( + 'Type' => array( + 'type' => 'numeric', + 'sentAs' => 'type', + ), + 'Code' => array( + 'type' => 'numeric', + 'sentAs' => 'code', + ), + ), + ), + 'PortRange' => array( + 'type' => 'object', + 'sentAs' => 'portRange', + 'properties' => array( + 'From' => array( + 'type' => 'numeric', + 'sentAs' => 'from', + ), + 'To' => array( + 'type' => 'numeric', + 'sentAs' => 'to', + ), + ), + ), + ), + ), + ), + 'Associations' => array( + 'type' => 'array', + 'sentAs' => 'associationSet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'NetworkAclAssociationId' => array( + 'type' => 'string', + 'sentAs' => 'networkAclAssociationId', + ), + 'NetworkAclId' => array( + 'type' => 'string', + 'sentAs' => 'networkAclId', + ), + 'SubnetId' => array( + 'type' => 'string', + 'sentAs' => 'subnetId', + ), + ), + ), + ), + 'Tags' => array( + 'type' => 'array', + 'sentAs' => 'tagSet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + 'sentAs' => 'key', + ), + 'Value' => array( + 'type' => 'string', + 'sentAs' => 'value', + ), + ), + ), + ), + ), + ), + ), + ), + ), + 'DescribeNetworkInterfaceAttributeResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'NetworkInterfaceId' => array( + 'type' => 'string', + 'location' => 'xml', + 'sentAs' => 'networkInterfaceId', + ), + 'Description' => array( + 'type' => 'object', + 'location' => 'xml', + 'sentAs' => 'description', + 'properties' => array( + 'Value' => array( + 'type' => 'string', + 'sentAs' => 'value', + ), + ), + ), + 'SourceDestCheck' => array( + 'type' => 'object', + 'location' => 'xml', + 'sentAs' => 'sourceDestCheck', + 'properties' => array( + 'Value' => array( + 'type' => 'boolean', + 'sentAs' => 'value', + ), + ), + ), + 'Groups' => array( + 'type' => 'array', + 'location' => 'xml', + 'sentAs' => 'groupSet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'GroupName' => array( + 'type' => 'string', + 'sentAs' => 'groupName', + ), + 'GroupId' => array( + 'type' => 'string', + 'sentAs' => 'groupId', + ), + ), + ), + ), + 'Attachment' => array( + 'type' => 'object', + 'location' => 'xml', + 'sentAs' => 'attachment', + 'properties' => array( + 'AttachmentId' => array( + 'type' => 'string', + 'sentAs' => 'attachmentId', + ), + 'InstanceId' => array( + 'type' => 'string', + 'sentAs' => 'instanceId', + ), + 'InstanceOwnerId' => array( + 'type' => 'string', + 'sentAs' => 'instanceOwnerId', + ), + 'DeviceIndex' => array( + 'type' => 'numeric', + 'sentAs' => 'deviceIndex', + ), + 'Status' => array( + 'type' => 'string', + 'sentAs' => 'status', + ), + 'AttachTime' => array( + 'type' => 'string', + 'sentAs' => 'attachTime', + ), + 'DeleteOnTermination' => array( + 'type' => 'boolean', + 'sentAs' => 'deleteOnTermination', + ), + ), + ), + ), + ), + 'DescribeNetworkInterfacesResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'NetworkInterfaces' => array( + 'type' => 'array', + 'location' => 'xml', + 'sentAs' => 'networkInterfaceSet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'NetworkInterfaceId' => array( + 'type' => 'string', + 'sentAs' => 'networkInterfaceId', + ), + 'SubnetId' => array( + 'type' => 'string', + 'sentAs' => 'subnetId', + ), + 'VpcId' => array( + 'type' => 'string', + 'sentAs' => 'vpcId', + ), + 'AvailabilityZone' => array( + 'type' => 'string', + 'sentAs' => 'availabilityZone', + ), + 'Description' => array( + 'type' => 'string', + 'sentAs' => 'description', + ), + 'OwnerId' => array( + 'type' => 'string', + 'sentAs' => 'ownerId', + ), + 'RequesterId' => array( + 'type' => 'string', + 'sentAs' => 'requesterId', + ), + 'RequesterManaged' => array( + 'type' => 'boolean', + 'sentAs' => 'requesterManaged', + ), + 'Status' => array( + 'type' => 'string', + 'sentAs' => 'status', + ), + 'MacAddress' => array( + 'type' => 'string', + 'sentAs' => 'macAddress', + ), + 'PrivateIpAddress' => array( + 'type' => 'string', + 'sentAs' => 'privateIpAddress', + ), + 'PrivateDnsName' => array( + 'type' => 'string', + 'sentAs' => 'privateDnsName', + ), + 'SourceDestCheck' => array( + 'type' => 'boolean', + 'sentAs' => 'sourceDestCheck', + ), + 'Groups' => array( + 'type' => 'array', + 'sentAs' => 'groupSet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'GroupName' => array( + 'type' => 'string', + 'sentAs' => 'groupName', + ), + 'GroupId' => array( + 'type' => 'string', + 'sentAs' => 'groupId', + ), + ), + ), + ), + 'Attachment' => array( + 'type' => 'object', + 'sentAs' => 'attachment', + 'properties' => array( + 'AttachmentId' => array( + 'type' => 'string', + 'sentAs' => 'attachmentId', + ), + 'InstanceId' => array( + 'type' => 'string', + 'sentAs' => 'instanceId', + ), + 'InstanceOwnerId' => array( + 'type' => 'string', + 'sentAs' => 'instanceOwnerId', + ), + 'DeviceIndex' => array( + 'type' => 'numeric', + 'sentAs' => 'deviceIndex', + ), + 'Status' => array( + 'type' => 'string', + 'sentAs' => 'status', + ), + 'AttachTime' => array( + 'type' => 'string', + 'sentAs' => 'attachTime', + ), + 'DeleteOnTermination' => array( + 'type' => 'boolean', + 'sentAs' => 'deleteOnTermination', + ), + ), + ), + 'Association' => array( + 'type' => 'object', + 'sentAs' => 'association', + 'properties' => array( + 'PublicIp' => array( + 'type' => 'string', + 'sentAs' => 'publicIp', + ), + 'PublicDnsName' => array( + 'type' => 'string', + 'sentAs' => 'publicDnsName', + ), + 'IpOwnerId' => array( + 'type' => 'string', + 'sentAs' => 'ipOwnerId', + ), + 'AllocationId' => array( + 'type' => 'string', + 'sentAs' => 'allocationId', + ), + 'AssociationId' => array( + 'type' => 'string', + 'sentAs' => 'associationId', + ), + ), + ), + 'TagSet' => array( + 'type' => 'array', + 'sentAs' => 'tagSet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + 'sentAs' => 'key', + ), + 'Value' => array( + 'type' => 'string', + 'sentAs' => 'value', + ), + ), + ), + ), + 'PrivateIpAddresses' => array( + 'type' => 'array', + 'sentAs' => 'privateIpAddressesSet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'PrivateIpAddress' => array( + 'type' => 'string', + 'sentAs' => 'privateIpAddress', + ), + 'PrivateDnsName' => array( + 'type' => 'string', + 'sentAs' => 'privateDnsName', + ), + 'Primary' => array( + 'type' => 'boolean', + 'sentAs' => 'primary', + ), + 'Association' => array( + 'type' => 'object', + 'sentAs' => 'association', + 'properties' => array( + 'PublicIp' => array( + 'type' => 'string', + 'sentAs' => 'publicIp', + ), + 'PublicDnsName' => array( + 'type' => 'string', + 'sentAs' => 'publicDnsName', + ), + 'IpOwnerId' => array( + 'type' => 'string', + 'sentAs' => 'ipOwnerId', + ), + 'AllocationId' => array( + 'type' => 'string', + 'sentAs' => 'allocationId', + ), + 'AssociationId' => array( + 'type' => 'string', + 'sentAs' => 'associationId', + ), + ), + ), + ), + ), + ), + ), + ), + ), + ), + ), + 'DescribePlacementGroupsResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'PlacementGroups' => array( + 'type' => 'array', + 'location' => 'xml', + 'sentAs' => 'placementGroupSet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'GroupName' => array( + 'type' => 'string', + 'sentAs' => 'groupName', + ), + 'Strategy' => array( + 'type' => 'string', + 'sentAs' => 'strategy', + ), + 'State' => array( + 'type' => 'string', + 'sentAs' => 'state', + ), + ), + ), + ), + ), + ), + 'DescribeRegionsResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'Regions' => array( + 'type' => 'array', + 'location' => 'xml', + 'sentAs' => 'regionInfo', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'RegionName' => array( + 'type' => 'string', + 'sentAs' => 'regionName', + ), + 'Endpoint' => array( + 'type' => 'string', + 'sentAs' => 'regionEndpoint', + ), + ), + ), + ), + ), + ), + 'DescribeReservedInstancesResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'ReservedInstances' => array( + 'type' => 'array', + 'location' => 'xml', + 'sentAs' => 'reservedInstancesSet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'ReservedInstancesId' => array( + 'type' => 'string', + 'sentAs' => 'reservedInstancesId', + ), + 'InstanceType' => array( + 'type' => 'string', + 'sentAs' => 'instanceType', + ), + 'AvailabilityZone' => array( + 'type' => 'string', + 'sentAs' => 'availabilityZone', + ), + 'Start' => array( + 'type' => 'string', + 'sentAs' => 'start', + ), + 'End' => array( + 'type' => 'string', + 'sentAs' => 'end', + ), + 'Duration' => array( + 'type' => 'numeric', + 'sentAs' => 'duration', + ), + 'UsagePrice' => array( + 'type' => 'numeric', + 'sentAs' => 'usagePrice', + ), + 'FixedPrice' => array( + 'type' => 'numeric', + 'sentAs' => 'fixedPrice', + ), + 'InstanceCount' => array( + 'type' => 'numeric', + 'sentAs' => 'instanceCount', + ), + 'ProductDescription' => array( + 'type' => 'string', + 'sentAs' => 'productDescription', + ), + 'State' => array( + 'type' => 'string', + 'sentAs' => 'state', + ), + 'Tags' => array( + 'type' => 'array', + 'sentAs' => 'tagSet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + 'sentAs' => 'key', + ), + 'Value' => array( + 'type' => 'string', + 'sentAs' => 'value', + ), + ), + ), + ), + 'InstanceTenancy' => array( + 'type' => 'string', + 'sentAs' => 'instanceTenancy', + ), + 'CurrencyCode' => array( + 'type' => 'string', + 'sentAs' => 'currencyCode', + ), + 'OfferingType' => array( + 'type' => 'string', + 'sentAs' => 'offeringType', + ), + 'RecurringCharges' => array( + 'type' => 'array', + 'sentAs' => 'recurringCharges', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'Frequency' => array( + 'type' => 'string', + 'sentAs' => 'frequency', + ), + 'Amount' => array( + 'type' => 'numeric', + 'sentAs' => 'amount', + ), + ), + ), + ), + ), + ), + ), + ), + ), + 'DescribeReservedInstancesListingsResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'ReservedInstancesListings' => array( + 'type' => 'array', + 'location' => 'xml', + 'sentAs' => 'reservedInstancesListingsSet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'ReservedInstancesListingId' => array( + 'type' => 'string', + 'sentAs' => 'reservedInstancesListingId', + ), + 'ReservedInstancesId' => array( + 'type' => 'string', + 'sentAs' => 'reservedInstancesId', + ), + 'CreateDate' => array( + 'type' => 'string', + 'sentAs' => 'createDate', + ), + 'UpdateDate' => array( + 'type' => 'string', + 'sentAs' => 'updateDate', + ), + 'Status' => array( + 'type' => 'string', + 'sentAs' => 'status', + ), + 'StatusMessage' => array( + 'type' => 'string', + 'sentAs' => 'statusMessage', + ), + 'InstanceCounts' => array( + 'type' => 'array', + 'sentAs' => 'instanceCounts', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'State' => array( + 'type' => 'string', + 'sentAs' => 'state', + ), + 'InstanceCount' => array( + 'type' => 'numeric', + 'sentAs' => 'instanceCount', + ), + ), + ), + ), + 'PriceSchedules' => array( + 'type' => 'array', + 'sentAs' => 'priceSchedules', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'Term' => array( + 'type' => 'numeric', + 'sentAs' => 'term', + ), + 'Price' => array( + 'type' => 'numeric', + 'sentAs' => 'price', + ), + 'CurrencyCode' => array( + 'type' => 'string', + 'sentAs' => 'currencyCode', + ), + 'Active' => array( + 'type' => 'boolean', + 'sentAs' => 'active', + ), + ), + ), + ), + 'Tags' => array( + 'type' => 'array', + 'sentAs' => 'tagSet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + 'sentAs' => 'key', + ), + 'Value' => array( + 'type' => 'string', + 'sentAs' => 'value', + ), + ), + ), + ), + 'ClientToken' => array( + 'type' => 'string', + 'sentAs' => 'clientToken', + ), + ), + ), + ), + ), + ), + 'DescribeReservedInstancesModificationsResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'ReservedInstancesModifications' => array( + 'type' => 'array', + 'location' => 'xml', + 'sentAs' => 'reservedInstancesModificationsSet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'ReservedInstancesModificationId' => array( + 'type' => 'string', + 'sentAs' => 'reservedInstancesModificationId', + ), + 'ReservedInstancesIds' => array( + 'type' => 'array', + 'sentAs' => 'reservedInstancesSet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'ReservedInstancesId' => array( + 'type' => 'string', + 'sentAs' => 'reservedInstancesId', + ), + ), + ), + ), + 'ModificationResults' => array( + 'type' => 'array', + 'sentAs' => 'modificationResultSet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'ReservedInstancesId' => array( + 'type' => 'string', + 'sentAs' => 'reservedInstancesId', + ), + 'TargetConfiguration' => array( + 'type' => 'object', + 'sentAs' => 'targetConfiguration', + 'properties' => array( + 'AvailabilityZone' => array( + 'type' => 'string', + 'sentAs' => 'availabilityZone', + ), + 'Platform' => array( + 'type' => 'string', + 'sentAs' => 'platform', + ), + 'InstanceCount' => array( + 'type' => 'numeric', + 'sentAs' => 'instanceCount', + ), + 'InstanceType' => array( + 'type' => 'string', + 'sentAs' => 'instanceType', + ), + ), + ), + ), + ), + ), + 'CreateDate' => array( + 'type' => 'string', + 'sentAs' => 'createDate', + ), + 'UpdateDate' => array( + 'type' => 'string', + 'sentAs' => 'updateDate', + ), + 'EffectiveDate' => array( + 'type' => 'string', + 'sentAs' => 'effectiveDate', + ), + 'Status' => array( + 'type' => 'string', + 'sentAs' => 'status', + ), + 'StatusMessage' => array( + 'type' => 'string', + 'sentAs' => 'statusMessage', + ), + 'ClientToken' => array( + 'type' => 'string', + 'sentAs' => 'clientToken', + ), + ), + ), + ), + 'NextToken' => array( + 'type' => 'string', + 'location' => 'xml', + 'sentAs' => 'nextToken', + ), + ), + ), + 'DescribeReservedInstancesOfferingsResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'ReservedInstancesOfferings' => array( + 'type' => 'array', + 'location' => 'xml', + 'sentAs' => 'reservedInstancesOfferingsSet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'ReservedInstancesOfferingId' => array( + 'type' => 'string', + 'sentAs' => 'reservedInstancesOfferingId', + ), + 'InstanceType' => array( + 'type' => 'string', + 'sentAs' => 'instanceType', + ), + 'AvailabilityZone' => array( + 'type' => 'string', + 'sentAs' => 'availabilityZone', + ), + 'Duration' => array( + 'type' => 'numeric', + 'sentAs' => 'duration', + ), + 'UsagePrice' => array( + 'type' => 'numeric', + 'sentAs' => 'usagePrice', + ), + 'FixedPrice' => array( + 'type' => 'numeric', + 'sentAs' => 'fixedPrice', + ), + 'ProductDescription' => array( + 'type' => 'string', + 'sentAs' => 'productDescription', + ), + 'InstanceTenancy' => array( + 'type' => 'string', + 'sentAs' => 'instanceTenancy', + ), + 'CurrencyCode' => array( + 'type' => 'string', + 'sentAs' => 'currencyCode', + ), + 'OfferingType' => array( + 'type' => 'string', + 'sentAs' => 'offeringType', + ), + 'RecurringCharges' => array( + 'type' => 'array', + 'sentAs' => 'recurringCharges', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'Frequency' => array( + 'type' => 'string', + 'sentAs' => 'frequency', + ), + 'Amount' => array( + 'type' => 'numeric', + 'sentAs' => 'amount', + ), + ), + ), + ), + 'Marketplace' => array( + 'type' => 'boolean', + 'sentAs' => 'marketplace', + ), + 'PricingDetails' => array( + 'type' => 'array', + 'sentAs' => 'pricingDetailsSet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'Price' => array( + 'type' => 'numeric', + 'sentAs' => 'price', + ), + 'Count' => array( + 'type' => 'numeric', + 'sentAs' => 'count', + ), + ), + ), + ), + ), + ), + ), + 'NextToken' => array( + 'type' => 'string', + 'location' => 'xml', + 'sentAs' => 'nextToken', + ), + ), + ), + 'DescribeRouteTablesResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'RouteTables' => array( + 'type' => 'array', + 'location' => 'xml', + 'sentAs' => 'routeTableSet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'RouteTableId' => array( + 'type' => 'string', + 'sentAs' => 'routeTableId', + ), + 'VpcId' => array( + 'type' => 'string', + 'sentAs' => 'vpcId', + ), + 'Routes' => array( + 'type' => 'array', + 'sentAs' => 'routeSet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'DestinationCidrBlock' => array( + 'type' => 'string', + 'sentAs' => 'destinationCidrBlock', + ), + 'GatewayId' => array( + 'type' => 'string', + 'sentAs' => 'gatewayId', + ), + 'InstanceId' => array( + 'type' => 'string', + 'sentAs' => 'instanceId', + ), + 'InstanceOwnerId' => array( + 'type' => 'string', + 'sentAs' => 'instanceOwnerId', + ), + 'NetworkInterfaceId' => array( + 'type' => 'string', + 'sentAs' => 'networkInterfaceId', + ), + 'VpcPeeringConnectionId' => array( + 'type' => 'string', + 'sentAs' => 'vpcPeeringConnectionId', + ), + 'State' => array( + 'type' => 'string', + 'sentAs' => 'state', + ), + 'Origin' => array( + 'type' => 'string', + 'sentAs' => 'origin', + ), + ), + ), + ), + 'Associations' => array( + 'type' => 'array', + 'sentAs' => 'associationSet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'RouteTableAssociationId' => array( + 'type' => 'string', + 'sentAs' => 'routeTableAssociationId', + ), + 'RouteTableId' => array( + 'type' => 'string', + 'sentAs' => 'routeTableId', + ), + 'SubnetId' => array( + 'type' => 'string', + 'sentAs' => 'subnetId', + ), + 'Main' => array( + 'type' => 'boolean', + 'sentAs' => 'main', + ), + ), + ), + ), + 'Tags' => array( + 'type' => 'array', + 'sentAs' => 'tagSet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + 'sentAs' => 'key', + ), + 'Value' => array( + 'type' => 'string', + 'sentAs' => 'value', + ), + ), + ), + ), + 'PropagatingVgws' => array( + 'type' => 'array', + 'sentAs' => 'propagatingVgwSet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'GatewayId' => array( + 'type' => 'string', + 'sentAs' => 'gatewayId', + ), + ), + ), + ), + ), + ), + ), + ), + ), + 'DescribeSecurityGroupsResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'SecurityGroups' => array( + 'type' => 'array', + 'location' => 'xml', + 'sentAs' => 'securityGroupInfo', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'OwnerId' => array( + 'type' => 'string', + 'sentAs' => 'ownerId', + ), + 'GroupName' => array( + 'type' => 'string', + 'sentAs' => 'groupName', + ), + 'GroupId' => array( + 'type' => 'string', + 'sentAs' => 'groupId', + ), + 'Description' => array( + 'type' => 'string', + 'sentAs' => 'groupDescription', + ), + 'IpPermissions' => array( + 'type' => 'array', + 'sentAs' => 'ipPermissions', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'IpProtocol' => array( + 'type' => 'string', + 'sentAs' => 'ipProtocol', + ), + 'FromPort' => array( + 'type' => 'numeric', + 'sentAs' => 'fromPort', + ), + 'ToPort' => array( + 'type' => 'numeric', + 'sentAs' => 'toPort', + ), + 'UserIdGroupPairs' => array( + 'type' => 'array', + 'sentAs' => 'groups', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'UserId' => array( + 'type' => 'string', + 'sentAs' => 'userId', + ), + 'GroupName' => array( + 'type' => 'string', + 'sentAs' => 'groupName', + ), + 'GroupId' => array( + 'type' => 'string', + 'sentAs' => 'groupId', + ), + ), + ), + ), + 'IpRanges' => array( + 'type' => 'array', + 'sentAs' => 'ipRanges', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'CidrIp' => array( + 'type' => 'string', + 'sentAs' => 'cidrIp', + ), + ), + ), + ), + ), + ), + ), + 'IpPermissionsEgress' => array( + 'type' => 'array', + 'sentAs' => 'ipPermissionsEgress', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'IpProtocol' => array( + 'type' => 'string', + 'sentAs' => 'ipProtocol', + ), + 'FromPort' => array( + 'type' => 'numeric', + 'sentAs' => 'fromPort', + ), + 'ToPort' => array( + 'type' => 'numeric', + 'sentAs' => 'toPort', + ), + 'UserIdGroupPairs' => array( + 'type' => 'array', + 'sentAs' => 'groups', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'UserId' => array( + 'type' => 'string', + 'sentAs' => 'userId', + ), + 'GroupName' => array( + 'type' => 'string', + 'sentAs' => 'groupName', + ), + 'GroupId' => array( + 'type' => 'string', + 'sentAs' => 'groupId', + ), + ), + ), + ), + 'IpRanges' => array( + 'type' => 'array', + 'sentAs' => 'ipRanges', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'CidrIp' => array( + 'type' => 'string', + 'sentAs' => 'cidrIp', + ), + ), + ), + ), + ), + ), + ), + 'VpcId' => array( + 'type' => 'string', + 'sentAs' => 'vpcId', + ), + 'Tags' => array( + 'type' => 'array', + 'sentAs' => 'tagSet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + 'sentAs' => 'key', + ), + 'Value' => array( + 'type' => 'string', + 'sentAs' => 'value', + ), + ), + ), + ), + ), + ), + ), + ), + ), + 'DescribeSnapshotAttributeResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'SnapshotId' => array( + 'type' => 'string', + 'location' => 'xml', + 'sentAs' => 'snapshotId', + ), + 'CreateVolumePermissions' => array( + 'type' => 'array', + 'location' => 'xml', + 'sentAs' => 'createVolumePermission', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'UserId' => array( + 'type' => 'string', + 'sentAs' => 'userId', + ), + 'Group' => array( + 'type' => 'string', + 'sentAs' => 'group', + ), + ), + ), + ), + 'ProductCodes' => array( + 'type' => 'array', + 'location' => 'xml', + 'sentAs' => 'productCodes', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'ProductCodeId' => array( + 'type' => 'string', + 'sentAs' => 'productCode', + ), + 'ProductCodeType' => array( + 'type' => 'string', + 'sentAs' => 'type', + ), + ), + ), + ), + ), + ), + 'DescribeSnapshotsResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'Snapshots' => array( + 'type' => 'array', + 'location' => 'xml', + 'sentAs' => 'snapshotSet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'SnapshotId' => array( + 'type' => 'string', + 'sentAs' => 'snapshotId', + ), + 'VolumeId' => array( + 'type' => 'string', + 'sentAs' => 'volumeId', + ), + 'State' => array( + 'type' => 'string', + 'sentAs' => 'status', + ), + 'StartTime' => array( + 'type' => 'string', + 'sentAs' => 'startTime', + ), + 'Progress' => array( + 'type' => 'string', + 'sentAs' => 'progress', + ), + 'OwnerId' => array( + 'type' => 'string', + 'sentAs' => 'ownerId', + ), + 'Description' => array( + 'type' => 'string', + 'sentAs' => 'description', + ), + 'VolumeSize' => array( + 'type' => 'numeric', + 'sentAs' => 'volumeSize', + ), + 'OwnerAlias' => array( + 'type' => 'string', + 'sentAs' => 'ownerAlias', + ), + 'Tags' => array( + 'type' => 'array', + 'sentAs' => 'tagSet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + 'sentAs' => 'key', + ), + 'Value' => array( + 'type' => 'string', + 'sentAs' => 'value', + ), + ), + ), + ), + 'Encrypted' => array( + 'type' => 'boolean', + 'sentAs' => 'encrypted', + ), + 'KmsKeyId' => array( + 'type' => 'string', + 'sentAs' => 'kmsKeyId', + ), + ), + ), + ), + 'NextToken' => array( + 'type' => 'string', + 'location' => 'xml', + 'sentAs' => 'nextToken', + ), + ), + ), + 'DescribeSpotDatafeedSubscriptionResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'SpotDatafeedSubscription' => array( + 'type' => 'object', + 'location' => 'xml', + 'sentAs' => 'spotDatafeedSubscription', + 'properties' => array( + 'OwnerId' => array( + 'type' => 'string', + 'sentAs' => 'ownerId', + ), + 'Bucket' => array( + 'type' => 'string', + 'sentAs' => 'bucket', + ), + 'Prefix' => array( + 'type' => 'string', + 'sentAs' => 'prefix', + ), + 'State' => array( + 'type' => 'string', + 'sentAs' => 'state', + ), + 'Fault' => array( + 'type' => 'object', + 'sentAs' => 'fault', + 'properties' => array( + 'Code' => array( + 'type' => 'string', + 'sentAs' => 'code', + ), + 'Message' => array( + 'type' => 'string', + 'sentAs' => 'message', + ), + ), + ), + ), + ), + ), + ), + 'DescribeSpotInstanceRequestsResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'SpotInstanceRequests' => array( + 'type' => 'array', + 'location' => 'xml', + 'sentAs' => 'spotInstanceRequestSet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'SpotInstanceRequestId' => array( + 'type' => 'string', + 'sentAs' => 'spotInstanceRequestId', + ), + 'SpotPrice' => array( + 'type' => 'string', + 'sentAs' => 'spotPrice', + ), + 'Type' => array( + 'type' => 'string', + 'sentAs' => 'type', + ), + 'State' => array( + 'type' => 'string', + 'sentAs' => 'state', + ), + 'Fault' => array( + 'type' => 'object', + 'sentAs' => 'fault', + 'properties' => array( + 'Code' => array( + 'type' => 'string', + 'sentAs' => 'code', + ), + 'Message' => array( + 'type' => 'string', + 'sentAs' => 'message', + ), + ), + ), + 'Status' => array( + 'type' => 'object', + 'sentAs' => 'status', + 'properties' => array( + 'Code' => array( + 'type' => 'string', + 'sentAs' => 'code', + ), + 'UpdateTime' => array( + 'type' => 'string', + 'sentAs' => 'updateTime', + ), + 'Message' => array( + 'type' => 'string', + 'sentAs' => 'message', + ), + ), + ), + 'ValidFrom' => array( + 'type' => 'string', + 'sentAs' => 'validFrom', + ), + 'ValidUntil' => array( + 'type' => 'string', + 'sentAs' => 'validUntil', + ), + 'LaunchGroup' => array( + 'type' => 'string', + 'sentAs' => 'launchGroup', + ), + 'AvailabilityZoneGroup' => array( + 'type' => 'string', + 'sentAs' => 'availabilityZoneGroup', + ), + 'LaunchSpecification' => array( + 'type' => 'object', + 'sentAs' => 'launchSpecification', + 'properties' => array( + 'ImageId' => array( + 'type' => 'string', + 'sentAs' => 'imageId', + ), + 'KeyName' => array( + 'type' => 'string', + 'sentAs' => 'keyName', + ), + 'SecurityGroups' => array( + 'type' => 'array', + 'sentAs' => 'groupSet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'GroupName' => array( + 'type' => 'string', + 'sentAs' => 'groupName', + ), + 'GroupId' => array( + 'type' => 'string', + 'sentAs' => 'groupId', + ), + ), + ), + ), + 'UserData' => array( + 'type' => 'string', + 'sentAs' => 'userData', + ), + 'AddressingType' => array( + 'type' => 'string', + 'sentAs' => 'addressingType', + ), + 'InstanceType' => array( + 'type' => 'string', + 'sentAs' => 'instanceType', + ), + 'Placement' => array( + 'type' => 'object', + 'sentAs' => 'placement', + 'properties' => array( + 'AvailabilityZone' => array( + 'type' => 'string', + 'sentAs' => 'availabilityZone', + ), + 'GroupName' => array( + 'type' => 'string', + 'sentAs' => 'groupName', + ), + ), + ), + 'KernelId' => array( + 'type' => 'string', + 'sentAs' => 'kernelId', + ), + 'RamdiskId' => array( + 'type' => 'string', + 'sentAs' => 'ramdiskId', + ), + 'BlockDeviceMappings' => array( + 'type' => 'array', + 'sentAs' => 'blockDeviceMapping', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'VirtualName' => array( + 'type' => 'string', + 'sentAs' => 'virtualName', + ), + 'DeviceName' => array( + 'type' => 'string', + 'sentAs' => 'deviceName', + ), + 'Ebs' => array( + 'type' => 'object', + 'sentAs' => 'ebs', + 'properties' => array( + 'SnapshotId' => array( + 'type' => 'string', + 'sentAs' => 'snapshotId', + ), + 'VolumeSize' => array( + 'type' => 'numeric', + 'sentAs' => 'volumeSize', + ), + 'DeleteOnTermination' => array( + 'type' => 'boolean', + 'sentAs' => 'deleteOnTermination', + ), + 'VolumeType' => array( + 'type' => 'string', + 'sentAs' => 'volumeType', + ), + 'Iops' => array( + 'type' => 'numeric', + 'sentAs' => 'iops', + ), + 'Encrypted' => array( + 'type' => 'boolean', + 'sentAs' => 'encrypted', + ), + ), + ), + 'NoDevice' => array( + 'type' => 'string', + 'sentAs' => 'noDevice', + ), + ), + ), + ), + 'MonitoringEnabled' => array( + 'type' => 'boolean', + 'sentAs' => 'monitoringEnabled', + ), + 'SubnetId' => array( + 'type' => 'string', + 'sentAs' => 'subnetId', + ), + 'NetworkInterfaces' => array( + 'type' => 'array', + 'sentAs' => 'networkInterfaceSet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'NetworkInterfaceId' => array( + 'type' => 'string', + 'sentAs' => 'networkInterfaceId', + ), + 'DeviceIndex' => array( + 'type' => 'numeric', + 'sentAs' => 'deviceIndex', + ), + 'SubnetId' => array( + 'type' => 'string', + 'sentAs' => 'subnetId', + ), + 'Description' => array( + 'type' => 'string', + 'sentAs' => 'description', + ), + 'PrivateIpAddress' => array( + 'type' => 'string', + 'sentAs' => 'privateIpAddress', + ), + 'Groups' => array( + 'type' => 'array', + 'sentAs' => 'SecurityGroupId', + 'items' => array( + 'name' => 'SecurityGroupId', + 'type' => 'string', + 'sentAs' => 'SecurityGroupId', + ), + ), + 'DeleteOnTermination' => array( + 'type' => 'boolean', + 'sentAs' => 'deleteOnTermination', + ), + 'PrivateIpAddresses' => array( + 'type' => 'array', + 'sentAs' => 'privateIpAddressesSet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'PrivateIpAddress' => array( + 'type' => 'string', + 'sentAs' => 'privateIpAddress', + ), + 'Primary' => array( + 'type' => 'boolean', + 'sentAs' => 'primary', + ), + ), + ), + ), + 'SecondaryPrivateIpAddressCount' => array( + 'type' => 'numeric', + 'sentAs' => 'secondaryPrivateIpAddressCount', + ), + 'AssociatePublicIpAddress' => array( + 'type' => 'boolean', + 'sentAs' => 'associatePublicIpAddress', + ), + ), + ), + ), + 'IamInstanceProfile' => array( + 'type' => 'object', + 'sentAs' => 'iamInstanceProfile', + 'properties' => array( + 'Arn' => array( + 'type' => 'string', + 'sentAs' => 'arn', + ), + 'Name' => array( + 'type' => 'string', + 'sentAs' => 'name', + ), + ), + ), + 'EbsOptimized' => array( + 'type' => 'boolean', + 'sentAs' => 'ebsOptimized', + ), + ), + ), + 'InstanceId' => array( + 'type' => 'string', + 'sentAs' => 'instanceId', + ), + 'CreateTime' => array( + 'type' => 'string', + 'sentAs' => 'createTime', + ), + 'ProductDescription' => array( + 'type' => 'string', + 'sentAs' => 'productDescription', + ), + 'Tags' => array( + 'type' => 'array', + 'sentAs' => 'tagSet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + 'sentAs' => 'key', + ), + 'Value' => array( + 'type' => 'string', + 'sentAs' => 'value', + ), + ), + ), + ), + 'LaunchedAvailabilityZone' => array( + 'type' => 'string', + 'sentAs' => 'launchedAvailabilityZone', + ), + ), + ), + ), + ), + ), + 'DescribeSpotPriceHistoryResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'SpotPriceHistory' => array( + 'type' => 'array', + 'location' => 'xml', + 'sentAs' => 'spotPriceHistorySet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'InstanceType' => array( + 'type' => 'string', + 'sentAs' => 'instanceType', + ), + 'ProductDescription' => array( + 'type' => 'string', + 'sentAs' => 'productDescription', + ), + 'SpotPrice' => array( + 'type' => 'string', + 'sentAs' => 'spotPrice', + ), + 'Timestamp' => array( + 'type' => 'string', + 'sentAs' => 'timestamp', + ), + 'AvailabilityZone' => array( + 'type' => 'string', + 'sentAs' => 'availabilityZone', + ), + ), + ), + ), + 'NextToken' => array( + 'type' => 'string', + 'location' => 'xml', + 'sentAs' => 'nextToken', + ), + ), + ), + 'DescribeSubnetsResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'Subnets' => array( + 'type' => 'array', + 'location' => 'xml', + 'sentAs' => 'subnetSet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'SubnetId' => array( + 'type' => 'string', + 'sentAs' => 'subnetId', + ), + 'State' => array( + 'type' => 'string', + 'sentAs' => 'state', + ), + 'VpcId' => array( + 'type' => 'string', + 'sentAs' => 'vpcId', + ), + 'CidrBlock' => array( + 'type' => 'string', + 'sentAs' => 'cidrBlock', + ), + 'AvailableIpAddressCount' => array( + 'type' => 'numeric', + 'sentAs' => 'availableIpAddressCount', + ), + 'AvailabilityZone' => array( + 'type' => 'string', + 'sentAs' => 'availabilityZone', + ), + 'DefaultForAz' => array( + 'type' => 'boolean', + 'sentAs' => 'defaultForAz', + ), + 'MapPublicIpOnLaunch' => array( + 'type' => 'boolean', + 'sentAs' => 'mapPublicIpOnLaunch', + ), + 'Tags' => array( + 'type' => 'array', + 'sentAs' => 'tagSet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + 'sentAs' => 'key', + ), + 'Value' => array( + 'type' => 'string', + 'sentAs' => 'value', + ), + ), + ), + ), + ), + ), + ), + ), + ), + 'DescribeTagsResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'Tags' => array( + 'type' => 'array', + 'location' => 'xml', + 'sentAs' => 'tagSet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'ResourceId' => array( + 'type' => 'string', + 'sentAs' => 'resourceId', + ), + 'ResourceType' => array( + 'type' => 'string', + 'sentAs' => 'resourceType', + ), + 'Key' => array( + 'type' => 'string', + 'sentAs' => 'key', + ), + 'Value' => array( + 'type' => 'string', + 'sentAs' => 'value', + ), + ), + ), + ), + 'NextToken' => array( + 'type' => 'string', + 'location' => 'xml', + 'sentAs' => 'nextToken', + ), + ), + ), + 'DescribeVolumeAttributeResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'VolumeId' => array( + 'type' => 'string', + 'location' => 'xml', + 'sentAs' => 'volumeId', + ), + 'AutoEnableIO' => array( + 'type' => 'object', + 'location' => 'xml', + 'sentAs' => 'autoEnableIO', + 'properties' => array( + 'Value' => array( + 'type' => 'boolean', + 'sentAs' => 'value', + ), + ), + ), + 'ProductCodes' => array( + 'type' => 'array', + 'location' => 'xml', + 'sentAs' => 'productCodes', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'ProductCodeId' => array( + 'type' => 'string', + 'sentAs' => 'productCode', + ), + 'ProductCodeType' => array( + 'type' => 'string', + 'sentAs' => 'type', + ), + ), + ), + ), + ), + ), + 'DescribeVolumeStatusResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'VolumeStatuses' => array( + 'type' => 'array', + 'location' => 'xml', + 'sentAs' => 'volumeStatusSet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'VolumeId' => array( + 'type' => 'string', + 'sentAs' => 'volumeId', + ), + 'AvailabilityZone' => array( + 'type' => 'string', + 'sentAs' => 'availabilityZone', + ), + 'VolumeStatus' => array( + 'type' => 'object', + 'sentAs' => 'volumeStatus', + 'properties' => array( + 'Status' => array( + 'type' => 'string', + 'sentAs' => 'status', + ), + 'Details' => array( + 'type' => 'array', + 'sentAs' => 'details', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'Name' => array( + 'type' => 'string', + 'sentAs' => 'name', + ), + 'Status' => array( + 'type' => 'string', + 'sentAs' => 'status', + ), + ), + ), + ), + ), + ), + 'Events' => array( + 'type' => 'array', + 'sentAs' => 'eventsSet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'EventType' => array( + 'type' => 'string', + 'sentAs' => 'eventType', + ), + 'Description' => array( + 'type' => 'string', + 'sentAs' => 'description', + ), + 'NotBefore' => array( + 'type' => 'string', + 'sentAs' => 'notBefore', + ), + 'NotAfter' => array( + 'type' => 'string', + 'sentAs' => 'notAfter', + ), + 'EventId' => array( + 'type' => 'string', + 'sentAs' => 'eventId', + ), + ), + ), + ), + 'Actions' => array( + 'type' => 'array', + 'sentAs' => 'actionsSet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'Code' => array( + 'type' => 'string', + 'sentAs' => 'code', + ), + 'Description' => array( + 'type' => 'string', + 'sentAs' => 'description', + ), + 'EventType' => array( + 'type' => 'string', + 'sentAs' => 'eventType', + ), + 'EventId' => array( + 'type' => 'string', + 'sentAs' => 'eventId', + ), + ), + ), + ), + ), + ), + ), + 'NextToken' => array( + 'type' => 'string', + 'location' => 'xml', + 'sentAs' => 'nextToken', + ), + ), + ), + 'DescribeVolumesResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'Volumes' => array( + 'type' => 'array', + 'location' => 'xml', + 'sentAs' => 'volumeSet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'VolumeId' => array( + 'type' => 'string', + 'sentAs' => 'volumeId', + ), + 'Size' => array( + 'type' => 'numeric', + 'sentAs' => 'size', + ), + 'SnapshotId' => array( + 'type' => 'string', + 'sentAs' => 'snapshotId', + ), + 'AvailabilityZone' => array( + 'type' => 'string', + 'sentAs' => 'availabilityZone', + ), + 'State' => array( + 'type' => 'string', + 'sentAs' => 'status', + ), + 'CreateTime' => array( + 'type' => 'string', + 'sentAs' => 'createTime', + ), + 'Attachments' => array( + 'type' => 'array', + 'sentAs' => 'attachmentSet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'VolumeId' => array( + 'type' => 'string', + 'sentAs' => 'volumeId', + ), + 'InstanceId' => array( + 'type' => 'string', + 'sentAs' => 'instanceId', + ), + 'Device' => array( + 'type' => 'string', + 'sentAs' => 'device', + ), + 'State' => array( + 'type' => 'string', + 'sentAs' => 'status', + ), + 'AttachTime' => array( + 'type' => 'string', + 'sentAs' => 'attachTime', + ), + 'DeleteOnTermination' => array( + 'type' => 'boolean', + 'sentAs' => 'deleteOnTermination', + ), + ), + ), + ), + 'Tags' => array( + 'type' => 'array', + 'sentAs' => 'tagSet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + 'sentAs' => 'key', + ), + 'Value' => array( + 'type' => 'string', + 'sentAs' => 'value', + ), + ), + ), + ), + 'VolumeType' => array( + 'type' => 'string', + 'sentAs' => 'volumeType', + ), + 'Iops' => array( + 'type' => 'numeric', + 'sentAs' => 'iops', + ), + 'Encrypted' => array( + 'type' => 'boolean', + 'sentAs' => 'encrypted', + ), + 'KmsKeyId' => array( + 'type' => 'string', + 'sentAs' => 'kmsKeyId', + ), + ), + ), + ), + 'NextToken' => array( + 'type' => 'string', + 'location' => 'xml', + 'sentAs' => 'nextToken', + ), + ), + ), + 'DescribeVpcAttributeResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'VpcId' => array( + 'type' => 'string', + 'location' => 'xml', + 'sentAs' => 'vpcId', + ), + 'EnableDnsSupport' => array( + 'type' => 'object', + 'location' => 'xml', + 'sentAs' => 'enableDnsSupport', + 'properties' => array( + 'Value' => array( + 'type' => 'boolean', + 'sentAs' => 'value', + ), + ), + ), + 'EnableDnsHostnames' => array( + 'type' => 'object', + 'location' => 'xml', + 'sentAs' => 'enableDnsHostnames', + 'properties' => array( + 'Value' => array( + 'type' => 'boolean', + 'sentAs' => 'value', + ), + ), + ), + ), + ), + 'DescribeVpcClassicLinkResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'Vpcs' => array( + 'type' => 'array', + 'location' => 'xml', + 'sentAs' => 'vpcSet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'VpcId' => array( + 'type' => 'string', + 'sentAs' => 'vpcId', + ), + 'ClassicLinkEnabled' => array( + 'type' => 'boolean', + 'sentAs' => 'classicLinkEnabled', + ), + 'Tags' => array( + 'type' => 'array', + 'sentAs' => 'tagSet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + 'sentAs' => 'key', + ), + 'Value' => array( + 'type' => 'string', + 'sentAs' => 'value', + ), + ), + ), + ), + ), + ), + ), + ), + ), + 'DescribeVpcPeeringConnectionsResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'VpcPeeringConnections' => array( + 'type' => 'array', + 'location' => 'xml', + 'sentAs' => 'vpcPeeringConnectionSet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'AccepterVpcInfo' => array( + 'type' => 'object', + 'sentAs' => 'accepterVpcInfo', + 'properties' => array( + 'CidrBlock' => array( + 'type' => 'string', + 'sentAs' => 'cidrBlock', + ), + 'OwnerId' => array( + 'type' => 'string', + 'sentAs' => 'ownerId', + ), + 'VpcId' => array( + 'type' => 'string', + 'sentAs' => 'vpcId', + ), + ), + ), + 'ExpirationTime' => array( + 'type' => 'string', + 'sentAs' => 'expirationTime', + ), + 'RequesterVpcInfo' => array( + 'type' => 'object', + 'sentAs' => 'requesterVpcInfo', + 'properties' => array( + 'CidrBlock' => array( + 'type' => 'string', + 'sentAs' => 'cidrBlock', + ), + 'OwnerId' => array( + 'type' => 'string', + 'sentAs' => 'ownerId', + ), + 'VpcId' => array( + 'type' => 'string', + 'sentAs' => 'vpcId', + ), + ), + ), + 'Status' => array( + 'type' => 'object', + 'sentAs' => 'status', + 'properties' => array( + 'Code' => array( + 'type' => 'string', + 'sentAs' => 'code', + ), + 'Message' => array( + 'type' => 'string', + 'sentAs' => 'message', + ), + ), + ), + 'Tags' => array( + 'type' => 'array', + 'sentAs' => 'tagSet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + 'sentAs' => 'key', + ), + 'Value' => array( + 'type' => 'string', + 'sentAs' => 'value', + ), + ), + ), + ), + 'VpcPeeringConnectionId' => array( + 'type' => 'string', + 'sentAs' => 'vpcPeeringConnectionId', + ), + ), + ), + ), + ), + ), + 'DescribeVpcsResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'Vpcs' => array( + 'type' => 'array', + 'location' => 'xml', + 'sentAs' => 'vpcSet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'VpcId' => array( + 'type' => 'string', + 'sentAs' => 'vpcId', + ), + 'State' => array( + 'type' => 'string', + 'sentAs' => 'state', + ), + 'CidrBlock' => array( + 'type' => 'string', + 'sentAs' => 'cidrBlock', + ), + 'DhcpOptionsId' => array( + 'type' => 'string', + 'sentAs' => 'dhcpOptionsId', + ), + 'Tags' => array( + 'type' => 'array', + 'sentAs' => 'tagSet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + 'sentAs' => 'key', + ), + 'Value' => array( + 'type' => 'string', + 'sentAs' => 'value', + ), + ), + ), + ), + 'InstanceTenancy' => array( + 'type' => 'string', + 'sentAs' => 'instanceTenancy', + ), + 'IsDefault' => array( + 'type' => 'boolean', + 'sentAs' => 'isDefault', + ), + ), + ), + ), + ), + ), + 'DescribeVpnConnectionsResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'VpnConnections' => array( + 'type' => 'array', + 'location' => 'xml', + 'sentAs' => 'vpnConnectionSet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'VpnConnectionId' => array( + 'type' => 'string', + 'sentAs' => 'vpnConnectionId', + ), + 'State' => array( + 'type' => 'string', + 'sentAs' => 'state', + ), + 'CustomerGatewayConfiguration' => array( + 'type' => 'string', + 'sentAs' => 'customerGatewayConfiguration', + ), + 'Type' => array( + 'type' => 'string', + 'sentAs' => 'type', + ), + 'CustomerGatewayId' => array( + 'type' => 'string', + 'sentAs' => 'customerGatewayId', + ), + 'VpnGatewayId' => array( + 'type' => 'string', + 'sentAs' => 'vpnGatewayId', + ), + 'Tags' => array( + 'type' => 'array', + 'sentAs' => 'tagSet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + 'sentAs' => 'key', + ), + 'Value' => array( + 'type' => 'string', + 'sentAs' => 'value', + ), + ), + ), + ), + 'VgwTelemetry' => array( + 'type' => 'array', + 'sentAs' => 'vgwTelemetry', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'OutsideIpAddress' => array( + 'type' => 'string', + 'sentAs' => 'outsideIpAddress', + ), + 'Status' => array( + 'type' => 'string', + 'sentAs' => 'status', + ), + 'LastStatusChange' => array( + 'type' => 'string', + 'sentAs' => 'lastStatusChange', + ), + 'StatusMessage' => array( + 'type' => 'string', + 'sentAs' => 'statusMessage', + ), + 'AcceptedRouteCount' => array( + 'type' => 'numeric', + 'sentAs' => 'acceptedRouteCount', + ), + ), + ), + ), + 'Options' => array( + 'type' => 'object', + 'sentAs' => 'options', + 'properties' => array( + 'StaticRoutesOnly' => array( + 'type' => 'boolean', + 'sentAs' => 'staticRoutesOnly', + ), + ), + ), + 'Routes' => array( + 'type' => 'array', + 'sentAs' => 'routes', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'DestinationCidrBlock' => array( + 'type' => 'string', + 'sentAs' => 'destinationCidrBlock', + ), + 'Source' => array( + 'type' => 'string', + 'sentAs' => 'source', + ), + 'State' => array( + 'type' => 'string', + 'sentAs' => 'state', + ), + ), + ), + ), + ), + ), + ), + ), + ), + 'DescribeVpnGatewaysResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'VpnGateways' => array( + 'type' => 'array', + 'location' => 'xml', + 'sentAs' => 'vpnGatewaySet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'VpnGatewayId' => array( + 'type' => 'string', + 'sentAs' => 'vpnGatewayId', + ), + 'State' => array( + 'type' => 'string', + 'sentAs' => 'state', + ), + 'Type' => array( + 'type' => 'string', + 'sentAs' => 'type', + ), + 'AvailabilityZone' => array( + 'type' => 'string', + 'sentAs' => 'availabilityZone', + ), + 'VpcAttachments' => array( + 'type' => 'array', + 'sentAs' => 'attachments', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'VpcId' => array( + 'type' => 'string', + 'sentAs' => 'vpcId', + ), + 'State' => array( + 'type' => 'string', + 'sentAs' => 'state', + ), + ), + ), + ), + 'Tags' => array( + 'type' => 'array', + 'sentAs' => 'tagSet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + 'sentAs' => 'key', + ), + 'Value' => array( + 'type' => 'string', + 'sentAs' => 'value', + ), + ), + ), + ), + ), + ), + ), + ), + ), + 'DetachClassicLinkVpcResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'Return' => array( + 'type' => 'boolean', + 'location' => 'xml', + 'sentAs' => 'return', + ), + ), + ), + 'DisableVpcClassicLinkResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'Return' => array( + 'type' => 'boolean', + 'location' => 'xml', + 'sentAs' => 'return', + ), + ), + ), + 'EnableVpcClassicLinkResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'Return' => array( + 'type' => 'boolean', + 'location' => 'xml', + 'sentAs' => 'return', + ), + ), + ), + 'GetConsoleOutputResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'InstanceId' => array( + 'type' => 'string', + 'location' => 'xml', + 'sentAs' => 'instanceId', + ), + 'Timestamp' => array( + 'type' => 'string', + 'location' => 'xml', + 'sentAs' => 'timestamp', + ), + 'Output' => array( + 'type' => 'string', + 'location' => 'xml', + 'sentAs' => 'output', + ), + ), + ), + 'GetPasswordDataResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'InstanceId' => array( + 'type' => 'string', + 'location' => 'xml', + 'sentAs' => 'instanceId', + ), + 'Timestamp' => array( + 'type' => 'string', + 'location' => 'xml', + 'sentAs' => 'timestamp', + ), + 'PasswordData' => array( + 'type' => 'string', + 'location' => 'xml', + 'sentAs' => 'passwordData', + ), + ), + ), + 'ImportImageResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'ImportTaskId' => array( + 'type' => 'string', + 'location' => 'xml', + 'sentAs' => 'importTaskId', + ), + 'Architecture' => array( + 'type' => 'string', + 'location' => 'xml', + 'sentAs' => 'architecture', + ), + 'LicenseType' => array( + 'type' => 'string', + 'location' => 'xml', + 'sentAs' => 'licenseType', + ), + 'Platform' => array( + 'type' => 'string', + 'location' => 'xml', + 'sentAs' => 'platform', + ), + 'Hypervisor' => array( + 'type' => 'string', + 'location' => 'xml', + 'sentAs' => 'hypervisor', + ), + 'Description' => array( + 'type' => 'string', + 'location' => 'xml', + 'sentAs' => 'description', + ), + 'SnapshotDetails' => array( + 'type' => 'array', + 'location' => 'xml', + 'sentAs' => 'snapshotDetailSet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'DiskImageSize' => array( + 'type' => 'numeric', + 'sentAs' => 'diskImageSize', + ), + 'Description' => array( + 'type' => 'string', + 'sentAs' => 'description', + ), + 'Format' => array( + 'type' => 'string', + 'sentAs' => 'format', + ), + 'Url' => array( + 'type' => 'string', + 'sentAs' => 'url', + ), + 'UserBucket' => array( + 'type' => 'object', + 'sentAs' => 'userBucket', + 'properties' => array( + 'S3Bucket' => array( + 'type' => 'string', + 'sentAs' => 's3Bucket', + ), + 'S3Key' => array( + 'type' => 'string', + 'sentAs' => 's3Key', + ), + ), + ), + 'DeviceName' => array( + 'type' => 'string', + 'sentAs' => 'deviceName', + ), + 'SnapshotId' => array( + 'type' => 'string', + 'sentAs' => 'snapshotId', + ), + 'Progress' => array( + 'type' => 'string', + 'sentAs' => 'progress', + ), + 'StatusMessage' => array( + 'type' => 'string', + 'sentAs' => 'statusMessage', + ), + 'Status' => array( + 'type' => 'string', + 'sentAs' => 'status', + ), + ), + ), + ), + 'ImageId' => array( + 'type' => 'string', + 'location' => 'xml', + 'sentAs' => 'imageId', + ), + 'Progress' => array( + 'type' => 'string', + 'location' => 'xml', + 'sentAs' => 'progress', + ), + 'StatusMessage' => array( + 'type' => 'string', + 'location' => 'xml', + 'sentAs' => 'statusMessage', + ), + 'Status' => array( + 'type' => 'string', + 'location' => 'xml', + 'sentAs' => 'status', + ), + ), + ), + 'ImportInstanceResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'ConversionTask' => array( + 'type' => 'object', + 'location' => 'xml', + 'sentAs' => 'conversionTask', + 'properties' => array( + 'ConversionTaskId' => array( + 'type' => 'string', + 'sentAs' => 'conversionTaskId', + ), + 'ExpirationTime' => array( + 'type' => 'string', + 'sentAs' => 'expirationTime', + ), + 'ImportInstance' => array( + 'type' => 'object', + 'sentAs' => 'importInstance', + 'properties' => array( + 'Volumes' => array( + 'type' => 'array', + 'sentAs' => 'volumes', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'BytesConverted' => array( + 'type' => 'numeric', + 'sentAs' => 'bytesConverted', + ), + 'AvailabilityZone' => array( + 'type' => 'string', + 'sentAs' => 'availabilityZone', + ), + 'Image' => array( + 'type' => 'object', + 'sentAs' => 'image', + 'properties' => array( + 'Format' => array( + 'type' => 'string', + 'sentAs' => 'format', + ), + 'Size' => array( + 'type' => 'numeric', + 'sentAs' => 'size', + ), + 'ImportManifestUrl' => array( + 'type' => 'string', + 'sentAs' => 'importManifestUrl', + ), + 'Checksum' => array( + 'type' => 'string', + 'sentAs' => 'checksum', + ), + ), + ), + 'Volume' => array( + 'type' => 'object', + 'sentAs' => 'volume', + 'properties' => array( + 'Size' => array( + 'type' => 'numeric', + 'sentAs' => 'size', + ), + 'Id' => array( + 'type' => 'string', + 'sentAs' => 'id', + ), + ), + ), + 'Status' => array( + 'type' => 'string', + 'sentAs' => 'status', + ), + 'StatusMessage' => array( + 'type' => 'string', + 'sentAs' => 'statusMessage', + ), + 'Description' => array( + 'type' => 'string', + 'sentAs' => 'description', + ), + ), + ), + ), + 'InstanceId' => array( + 'type' => 'string', + 'sentAs' => 'instanceId', + ), + 'Platform' => array( + 'type' => 'string', + 'sentAs' => 'platform', + ), + 'Description' => array( + 'type' => 'string', + 'sentAs' => 'description', + ), + ), + ), + 'ImportVolume' => array( + 'type' => 'object', + 'sentAs' => 'importVolume', + 'properties' => array( + 'BytesConverted' => array( + 'type' => 'numeric', + 'sentAs' => 'bytesConverted', + ), + 'AvailabilityZone' => array( + 'type' => 'string', + 'sentAs' => 'availabilityZone', + ), + 'Description' => array( + 'type' => 'string', + 'sentAs' => 'description', + ), + 'Image' => array( + 'type' => 'object', + 'sentAs' => 'image', + 'properties' => array( + 'Format' => array( + 'type' => 'string', + 'sentAs' => 'format', + ), + 'Size' => array( + 'type' => 'numeric', + 'sentAs' => 'size', + ), + 'ImportManifestUrl' => array( + 'type' => 'string', + 'sentAs' => 'importManifestUrl', + ), + 'Checksum' => array( + 'type' => 'string', + 'sentAs' => 'checksum', + ), + ), + ), + 'Volume' => array( + 'type' => 'object', + 'sentAs' => 'volume', + 'properties' => array( + 'Size' => array( + 'type' => 'numeric', + 'sentAs' => 'size', + ), + 'Id' => array( + 'type' => 'string', + 'sentAs' => 'id', + ), + ), + ), + ), + ), + 'State' => array( + 'type' => 'string', + 'sentAs' => 'state', + ), + 'StatusMessage' => array( + 'type' => 'string', + 'sentAs' => 'statusMessage', + ), + 'Tags' => array( + 'type' => 'array', + 'sentAs' => 'tagSet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + 'sentAs' => 'key', + ), + 'Value' => array( + 'type' => 'string', + 'sentAs' => 'value', + ), + ), + ), + ), + ), + ), + ), + ), + 'ImportKeyPairResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'KeyName' => array( + 'type' => 'string', + 'location' => 'xml', + 'sentAs' => 'keyName', + ), + 'KeyFingerprint' => array( + 'type' => 'string', + 'location' => 'xml', + 'sentAs' => 'keyFingerprint', + ), + ), + ), + 'ImportSnapshotResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'ImportTaskId' => array( + 'type' => 'string', + 'location' => 'xml', + 'sentAs' => 'importTaskId', + ), + 'SnapshotTaskDetail' => array( + 'type' => 'object', + 'location' => 'xml', + 'sentAs' => 'snapshotTaskDetail', + 'properties' => array( + 'DiskImageSize' => array( + 'type' => 'numeric', + 'sentAs' => 'diskImageSize', + ), + 'Description' => array( + 'type' => 'string', + 'sentAs' => 'description', + ), + 'Format' => array( + 'type' => 'string', + 'sentAs' => 'format', + ), + 'Url' => array( + 'type' => 'string', + 'sentAs' => 'url', + ), + 'UserBucket' => array( + 'type' => 'object', + 'sentAs' => 'userBucket', + 'properties' => array( + 'S3Bucket' => array( + 'type' => 'string', + 'sentAs' => 's3Bucket', + ), + 'S3Key' => array( + 'type' => 'string', + 'sentAs' => 's3Key', + ), + ), + ), + 'SnapshotId' => array( + 'type' => 'string', + 'sentAs' => 'snapshotId', + ), + 'Progress' => array( + 'type' => 'string', + 'sentAs' => 'progress', + ), + 'StatusMessage' => array( + 'type' => 'string', + 'sentAs' => 'statusMessage', + ), + 'Status' => array( + 'type' => 'string', + 'sentAs' => 'status', + ), + ), + ), + 'Description' => array( + 'type' => 'string', + 'location' => 'xml', + 'sentAs' => 'description', + ), + ), + ), + 'ImportVolumeResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'ConversionTask' => array( + 'type' => 'object', + 'location' => 'xml', + 'sentAs' => 'conversionTask', + 'properties' => array( + 'ConversionTaskId' => array( + 'type' => 'string', + 'sentAs' => 'conversionTaskId', + ), + 'ExpirationTime' => array( + 'type' => 'string', + 'sentAs' => 'expirationTime', + ), + 'ImportInstance' => array( + 'type' => 'object', + 'sentAs' => 'importInstance', + 'properties' => array( + 'Volumes' => array( + 'type' => 'array', + 'sentAs' => 'volumes', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'BytesConverted' => array( + 'type' => 'numeric', + 'sentAs' => 'bytesConverted', + ), + 'AvailabilityZone' => array( + 'type' => 'string', + 'sentAs' => 'availabilityZone', + ), + 'Image' => array( + 'type' => 'object', + 'sentAs' => 'image', + 'properties' => array( + 'Format' => array( + 'type' => 'string', + 'sentAs' => 'format', + ), + 'Size' => array( + 'type' => 'numeric', + 'sentAs' => 'size', + ), + 'ImportManifestUrl' => array( + 'type' => 'string', + 'sentAs' => 'importManifestUrl', + ), + 'Checksum' => array( + 'type' => 'string', + 'sentAs' => 'checksum', + ), + ), + ), + 'Volume' => array( + 'type' => 'object', + 'sentAs' => 'volume', + 'properties' => array( + 'Size' => array( + 'type' => 'numeric', + 'sentAs' => 'size', + ), + 'Id' => array( + 'type' => 'string', + 'sentAs' => 'id', + ), + ), + ), + 'Status' => array( + 'type' => 'string', + 'sentAs' => 'status', + ), + 'StatusMessage' => array( + 'type' => 'string', + 'sentAs' => 'statusMessage', + ), + 'Description' => array( + 'type' => 'string', + 'sentAs' => 'description', + ), + ), + ), + ), + 'InstanceId' => array( + 'type' => 'string', + 'sentAs' => 'instanceId', + ), + 'Platform' => array( + 'type' => 'string', + 'sentAs' => 'platform', + ), + 'Description' => array( + 'type' => 'string', + 'sentAs' => 'description', + ), + ), + ), + 'ImportVolume' => array( + 'type' => 'object', + 'sentAs' => 'importVolume', + 'properties' => array( + 'BytesConverted' => array( + 'type' => 'numeric', + 'sentAs' => 'bytesConverted', + ), + 'AvailabilityZone' => array( + 'type' => 'string', + 'sentAs' => 'availabilityZone', + ), + 'Description' => array( + 'type' => 'string', + 'sentAs' => 'description', + ), + 'Image' => array( + 'type' => 'object', + 'sentAs' => 'image', + 'properties' => array( + 'Format' => array( + 'type' => 'string', + 'sentAs' => 'format', + ), + 'Size' => array( + 'type' => 'numeric', + 'sentAs' => 'size', + ), + 'ImportManifestUrl' => array( + 'type' => 'string', + 'sentAs' => 'importManifestUrl', + ), + 'Checksum' => array( + 'type' => 'string', + 'sentAs' => 'checksum', + ), + ), + ), + 'Volume' => array( + 'type' => 'object', + 'sentAs' => 'volume', + 'properties' => array( + 'Size' => array( + 'type' => 'numeric', + 'sentAs' => 'size', + ), + 'Id' => array( + 'type' => 'string', + 'sentAs' => 'id', + ), + ), + ), + ), + ), + 'State' => array( + 'type' => 'string', + 'sentAs' => 'state', + ), + 'StatusMessage' => array( + 'type' => 'string', + 'sentAs' => 'statusMessage', + ), + 'Tags' => array( + 'type' => 'array', + 'sentAs' => 'tagSet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + 'sentAs' => 'key', + ), + 'Value' => array( + 'type' => 'string', + 'sentAs' => 'value', + ), + ), + ), + ), + ), + ), + ), + ), + 'ModifyReservedInstancesResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'ReservedInstancesModificationId' => array( + 'type' => 'string', + 'location' => 'xml', + 'sentAs' => 'reservedInstancesModificationId', + ), + ), + ), + 'MonitorInstancesResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'InstanceMonitorings' => array( + 'type' => 'array', + 'location' => 'xml', + 'sentAs' => 'instancesSet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'InstanceId' => array( + 'type' => 'string', + 'sentAs' => 'instanceId', + ), + 'Monitoring' => array( + 'type' => 'object', + 'sentAs' => 'monitoring', + 'properties' => array( + 'State' => array( + 'type' => 'string', + 'sentAs' => 'state', + ), + ), + ), + ), + ), + ), + ), + ), + 'PurchaseReservedInstancesOfferingResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'ReservedInstancesId' => array( + 'type' => 'string', + 'location' => 'xml', + 'sentAs' => 'reservedInstancesId', + ), + ), + ), + 'RegisterImageResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'ImageId' => array( + 'type' => 'string', + 'location' => 'xml', + 'sentAs' => 'imageId', + ), + ), + ), + 'RejectVpcPeeringConnectionResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'Return' => array( + 'type' => 'boolean', + 'location' => 'xml', + 'sentAs' => 'return', + ), + ), + ), + 'ReplaceNetworkAclAssociationResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'NewAssociationId' => array( + 'type' => 'string', + 'location' => 'xml', + 'sentAs' => 'newAssociationId', + ), + ), + ), + 'ReplaceRouteTableAssociationResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'NewAssociationId' => array( + 'type' => 'string', + 'location' => 'xml', + 'sentAs' => 'newAssociationId', + ), + ), + ), + 'RequestSpotInstancesResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'SpotInstanceRequests' => array( + 'type' => 'array', + 'location' => 'xml', + 'sentAs' => 'spotInstanceRequestSet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'SpotInstanceRequestId' => array( + 'type' => 'string', + 'sentAs' => 'spotInstanceRequestId', + ), + 'SpotPrice' => array( + 'type' => 'string', + 'sentAs' => 'spotPrice', + ), + 'Type' => array( + 'type' => 'string', + 'sentAs' => 'type', + ), + 'State' => array( + 'type' => 'string', + 'sentAs' => 'state', + ), + 'Fault' => array( + 'type' => 'object', + 'sentAs' => 'fault', + 'properties' => array( + 'Code' => array( + 'type' => 'string', + 'sentAs' => 'code', + ), + 'Message' => array( + 'type' => 'string', + 'sentAs' => 'message', + ), + ), + ), + 'Status' => array( + 'type' => 'object', + 'sentAs' => 'status', + 'properties' => array( + 'Code' => array( + 'type' => 'string', + 'sentAs' => 'code', + ), + 'UpdateTime' => array( + 'type' => 'string', + 'sentAs' => 'updateTime', + ), + 'Message' => array( + 'type' => 'string', + 'sentAs' => 'message', + ), + ), + ), + 'ValidFrom' => array( + 'type' => 'string', + 'sentAs' => 'validFrom', + ), + 'ValidUntil' => array( + 'type' => 'string', + 'sentAs' => 'validUntil', + ), + 'LaunchGroup' => array( + 'type' => 'string', + 'sentAs' => 'launchGroup', + ), + 'AvailabilityZoneGroup' => array( + 'type' => 'string', + 'sentAs' => 'availabilityZoneGroup', + ), + 'LaunchSpecification' => array( + 'type' => 'object', + 'sentAs' => 'launchSpecification', + 'properties' => array( + 'ImageId' => array( + 'type' => 'string', + 'sentAs' => 'imageId', + ), + 'KeyName' => array( + 'type' => 'string', + 'sentAs' => 'keyName', + ), + 'SecurityGroups' => array( + 'type' => 'array', + 'sentAs' => 'groupSet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'GroupName' => array( + 'type' => 'string', + 'sentAs' => 'groupName', + ), + 'GroupId' => array( + 'type' => 'string', + 'sentAs' => 'groupId', + ), + ), + ), + ), + 'UserData' => array( + 'type' => 'string', + 'sentAs' => 'userData', + ), + 'AddressingType' => array( + 'type' => 'string', + 'sentAs' => 'addressingType', + ), + 'InstanceType' => array( + 'type' => 'string', + 'sentAs' => 'instanceType', + ), + 'Placement' => array( + 'type' => 'object', + 'sentAs' => 'placement', + 'properties' => array( + 'AvailabilityZone' => array( + 'type' => 'string', + 'sentAs' => 'availabilityZone', + ), + 'GroupName' => array( + 'type' => 'string', + 'sentAs' => 'groupName', + ), + ), + ), + 'KernelId' => array( + 'type' => 'string', + 'sentAs' => 'kernelId', + ), + 'RamdiskId' => array( + 'type' => 'string', + 'sentAs' => 'ramdiskId', + ), + 'BlockDeviceMappings' => array( + 'type' => 'array', + 'sentAs' => 'blockDeviceMapping', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'VirtualName' => array( + 'type' => 'string', + 'sentAs' => 'virtualName', + ), + 'DeviceName' => array( + 'type' => 'string', + 'sentAs' => 'deviceName', + ), + 'Ebs' => array( + 'type' => 'object', + 'sentAs' => 'ebs', + 'properties' => array( + 'SnapshotId' => array( + 'type' => 'string', + 'sentAs' => 'snapshotId', + ), + 'VolumeSize' => array( + 'type' => 'numeric', + 'sentAs' => 'volumeSize', + ), + 'DeleteOnTermination' => array( + 'type' => 'boolean', + 'sentAs' => 'deleteOnTermination', + ), + 'VolumeType' => array( + 'type' => 'string', + 'sentAs' => 'volumeType', + ), + 'Iops' => array( + 'type' => 'numeric', + 'sentAs' => 'iops', + ), + 'Encrypted' => array( + 'type' => 'boolean', + 'sentAs' => 'encrypted', + ), + ), + ), + 'NoDevice' => array( + 'type' => 'string', + 'sentAs' => 'noDevice', + ), + ), + ), + ), + 'MonitoringEnabled' => array( + 'type' => 'boolean', + 'sentAs' => 'monitoringEnabled', + ), + 'SubnetId' => array( + 'type' => 'string', + 'sentAs' => 'subnetId', + ), + 'NetworkInterfaces' => array( + 'type' => 'array', + 'sentAs' => 'networkInterfaceSet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'NetworkInterfaceId' => array( + 'type' => 'string', + 'sentAs' => 'networkInterfaceId', + ), + 'DeviceIndex' => array( + 'type' => 'numeric', + 'sentAs' => 'deviceIndex', + ), + 'SubnetId' => array( + 'type' => 'string', + 'sentAs' => 'subnetId', + ), + 'Description' => array( + 'type' => 'string', + 'sentAs' => 'description', + ), + 'PrivateIpAddress' => array( + 'type' => 'string', + 'sentAs' => 'privateIpAddress', + ), + 'Groups' => array( + 'type' => 'array', + 'sentAs' => 'SecurityGroupId', + 'items' => array( + 'name' => 'SecurityGroupId', + 'type' => 'string', + 'sentAs' => 'SecurityGroupId', + ), + ), + 'DeleteOnTermination' => array( + 'type' => 'boolean', + 'sentAs' => 'deleteOnTermination', + ), + 'PrivateIpAddresses' => array( + 'type' => 'array', + 'sentAs' => 'privateIpAddressesSet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'PrivateIpAddress' => array( + 'type' => 'string', + 'sentAs' => 'privateIpAddress', + ), + 'Primary' => array( + 'type' => 'boolean', + 'sentAs' => 'primary', + ), + ), + ), + ), + 'SecondaryPrivateIpAddressCount' => array( + 'type' => 'numeric', + 'sentAs' => 'secondaryPrivateIpAddressCount', + ), + 'AssociatePublicIpAddress' => array( + 'type' => 'boolean', + 'sentAs' => 'associatePublicIpAddress', + ), + ), + ), + ), + 'IamInstanceProfile' => array( + 'type' => 'object', + 'sentAs' => 'iamInstanceProfile', + 'properties' => array( + 'Arn' => array( + 'type' => 'string', + 'sentAs' => 'arn', + ), + 'Name' => array( + 'type' => 'string', + 'sentAs' => 'name', + ), + ), + ), + 'EbsOptimized' => array( + 'type' => 'boolean', + 'sentAs' => 'ebsOptimized', + ), + ), + ), + 'InstanceId' => array( + 'type' => 'string', + 'sentAs' => 'instanceId', + ), + 'CreateTime' => array( + 'type' => 'string', + 'sentAs' => 'createTime', + ), + 'ProductDescription' => array( + 'type' => 'string', + 'sentAs' => 'productDescription', + ), + 'Tags' => array( + 'type' => 'array', + 'sentAs' => 'tagSet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + 'sentAs' => 'key', + ), + 'Value' => array( + 'type' => 'string', + 'sentAs' => 'value', + ), + ), + ), + ), + 'LaunchedAvailabilityZone' => array( + 'type' => 'string', + 'sentAs' => 'launchedAvailabilityZone', + ), + ), + ), + ), + ), + ), + 'reservation' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'ReservationId' => array( + 'type' => 'string', + 'location' => 'xml', + 'sentAs' => 'reservationId', + ), + 'OwnerId' => array( + 'type' => 'string', + 'location' => 'xml', + 'sentAs' => 'ownerId', + ), + 'RequesterId' => array( + 'type' => 'string', + 'location' => 'xml', + 'sentAs' => 'requesterId', + ), + 'Groups' => array( + 'type' => 'array', + 'location' => 'xml', + 'sentAs' => 'groupSet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'GroupName' => array( + 'type' => 'string', + 'sentAs' => 'groupName', + ), + 'GroupId' => array( + 'type' => 'string', + 'sentAs' => 'groupId', + ), + ), + ), + ), + 'Instances' => array( + 'type' => 'array', + 'location' => 'xml', + 'sentAs' => 'instancesSet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'InstanceId' => array( + 'type' => 'string', + 'sentAs' => 'instanceId', + ), + 'ImageId' => array( + 'type' => 'string', + 'sentAs' => 'imageId', + ), + 'State' => array( + 'type' => 'object', + 'sentAs' => 'instanceState', + 'properties' => array( + 'Code' => array( + 'type' => 'numeric', + 'sentAs' => 'code', + ), + 'Name' => array( + 'type' => 'string', + 'sentAs' => 'name', + ), + ), + ), + 'PrivateDnsName' => array( + 'type' => 'string', + 'sentAs' => 'privateDnsName', + ), + 'PublicDnsName' => array( + 'type' => 'string', + 'sentAs' => 'dnsName', + ), + 'StateTransitionReason' => array( + 'type' => 'string', + 'sentAs' => 'reason', + ), + 'KeyName' => array( + 'type' => 'string', + 'sentAs' => 'keyName', + ), + 'AmiLaunchIndex' => array( + 'type' => 'numeric', + 'sentAs' => 'amiLaunchIndex', + ), + 'ProductCodes' => array( + 'type' => 'array', + 'sentAs' => 'productCodes', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'ProductCodeId' => array( + 'type' => 'string', + 'sentAs' => 'productCode', + ), + 'ProductCodeType' => array( + 'type' => 'string', + 'sentAs' => 'type', + ), + ), + ), + ), + 'InstanceType' => array( + 'type' => 'string', + 'sentAs' => 'instanceType', + ), + 'LaunchTime' => array( + 'type' => 'string', + 'sentAs' => 'launchTime', + ), + 'Placement' => array( + 'type' => 'object', + 'sentAs' => 'placement', + 'properties' => array( + 'AvailabilityZone' => array( + 'type' => 'string', + 'sentAs' => 'availabilityZone', + ), + 'GroupName' => array( + 'type' => 'string', + 'sentAs' => 'groupName', + ), + 'Tenancy' => array( + 'type' => 'string', + 'sentAs' => 'tenancy', + ), + ), + ), + 'KernelId' => array( + 'type' => 'string', + 'sentAs' => 'kernelId', + ), + 'RamdiskId' => array( + 'type' => 'string', + 'sentAs' => 'ramdiskId', + ), + 'Platform' => array( + 'type' => 'string', + 'sentAs' => 'platform', + ), + 'Monitoring' => array( + 'type' => 'object', + 'sentAs' => 'monitoring', + 'properties' => array( + 'State' => array( + 'type' => 'string', + 'sentAs' => 'state', + ), + ), + ), + 'SubnetId' => array( + 'type' => 'string', + 'sentAs' => 'subnetId', + ), + 'VpcId' => array( + 'type' => 'string', + 'sentAs' => 'vpcId', + ), + 'PrivateIpAddress' => array( + 'type' => 'string', + 'sentAs' => 'privateIpAddress', + ), + 'PublicIpAddress' => array( + 'type' => 'string', + 'sentAs' => 'ipAddress', + ), + 'StateReason' => array( + 'type' => 'object', + 'sentAs' => 'stateReason', + 'properties' => array( + 'Code' => array( + 'type' => 'string', + 'sentAs' => 'code', + ), + 'Message' => array( + 'type' => 'string', + 'sentAs' => 'message', + ), + ), + ), + 'Architecture' => array( + 'type' => 'string', + 'sentAs' => 'architecture', + ), + 'RootDeviceType' => array( + 'type' => 'string', + 'sentAs' => 'rootDeviceType', + ), + 'RootDeviceName' => array( + 'type' => 'string', + 'sentAs' => 'rootDeviceName', + ), + 'BlockDeviceMappings' => array( + 'type' => 'array', + 'sentAs' => 'blockDeviceMapping', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'DeviceName' => array( + 'type' => 'string', + 'sentAs' => 'deviceName', + ), + 'Ebs' => array( + 'type' => 'object', + 'sentAs' => 'ebs', + 'properties' => array( + 'VolumeId' => array( + 'type' => 'string', + 'sentAs' => 'volumeId', + ), + 'Status' => array( + 'type' => 'string', + 'sentAs' => 'status', + ), + 'AttachTime' => array( + 'type' => 'string', + 'sentAs' => 'attachTime', + ), + 'DeleteOnTermination' => array( + 'type' => 'boolean', + 'sentAs' => 'deleteOnTermination', + ), + ), + ), + ), + ), + ), + 'VirtualizationType' => array( + 'type' => 'string', + 'sentAs' => 'virtualizationType', + ), + 'InstanceLifecycle' => array( + 'type' => 'string', + 'sentAs' => 'instanceLifecycle', + ), + 'SpotInstanceRequestId' => array( + 'type' => 'string', + 'sentAs' => 'spotInstanceRequestId', + ), + 'ClientToken' => array( + 'type' => 'string', + 'sentAs' => 'clientToken', + ), + 'Tags' => array( + 'type' => 'array', + 'sentAs' => 'tagSet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + 'sentAs' => 'key', + ), + 'Value' => array( + 'type' => 'string', + 'sentAs' => 'value', + ), + ), + ), + ), + 'SecurityGroups' => array( + 'type' => 'array', + 'sentAs' => 'groupSet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'GroupName' => array( + 'type' => 'string', + 'sentAs' => 'groupName', + ), + 'GroupId' => array( + 'type' => 'string', + 'sentAs' => 'groupId', + ), + ), + ), + ), + 'SourceDestCheck' => array( + 'type' => 'boolean', + 'sentAs' => 'sourceDestCheck', + ), + 'Hypervisor' => array( + 'type' => 'string', + 'sentAs' => 'hypervisor', + ), + 'NetworkInterfaces' => array( + 'type' => 'array', + 'sentAs' => 'networkInterfaceSet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'NetworkInterfaceId' => array( + 'type' => 'string', + 'sentAs' => 'networkInterfaceId', + ), + 'SubnetId' => array( + 'type' => 'string', + 'sentAs' => 'subnetId', + ), + 'VpcId' => array( + 'type' => 'string', + 'sentAs' => 'vpcId', + ), + 'Description' => array( + 'type' => 'string', + 'sentAs' => 'description', + ), + 'OwnerId' => array( + 'type' => 'string', + 'sentAs' => 'ownerId', + ), + 'Status' => array( + 'type' => 'string', + 'sentAs' => 'status', + ), + 'MacAddress' => array( + 'type' => 'string', + 'sentAs' => 'macAddress', + ), + 'PrivateIpAddress' => array( + 'type' => 'string', + 'sentAs' => 'privateIpAddress', + ), + 'PrivateDnsName' => array( + 'type' => 'string', + 'sentAs' => 'privateDnsName', + ), + 'SourceDestCheck' => array( + 'type' => 'boolean', + 'sentAs' => 'sourceDestCheck', + ), + 'Groups' => array( + 'type' => 'array', + 'sentAs' => 'groupSet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'GroupName' => array( + 'type' => 'string', + 'sentAs' => 'groupName', + ), + 'GroupId' => array( + 'type' => 'string', + 'sentAs' => 'groupId', + ), + ), + ), + ), + 'Attachment' => array( + 'type' => 'object', + 'sentAs' => 'attachment', + 'properties' => array( + 'AttachmentId' => array( + 'type' => 'string', + 'sentAs' => 'attachmentId', + ), + 'DeviceIndex' => array( + 'type' => 'numeric', + 'sentAs' => 'deviceIndex', + ), + 'Status' => array( + 'type' => 'string', + 'sentAs' => 'status', + ), + 'AttachTime' => array( + 'type' => 'string', + 'sentAs' => 'attachTime', + ), + 'DeleteOnTermination' => array( + 'type' => 'boolean', + 'sentAs' => 'deleteOnTermination', + ), + ), + ), + 'Association' => array( + 'type' => 'object', + 'sentAs' => 'association', + 'properties' => array( + 'PublicIp' => array( + 'type' => 'string', + 'sentAs' => 'publicIp', + ), + 'PublicDnsName' => array( + 'type' => 'string', + 'sentAs' => 'publicDnsName', + ), + 'IpOwnerId' => array( + 'type' => 'string', + 'sentAs' => 'ipOwnerId', + ), + ), + ), + 'PrivateIpAddresses' => array( + 'type' => 'array', + 'sentAs' => 'privateIpAddressesSet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'PrivateIpAddress' => array( + 'type' => 'string', + 'sentAs' => 'privateIpAddress', + ), + 'PrivateDnsName' => array( + 'type' => 'string', + 'sentAs' => 'privateDnsName', + ), + 'Primary' => array( + 'type' => 'boolean', + 'sentAs' => 'primary', + ), + 'Association' => array( + 'type' => 'object', + 'sentAs' => 'association', + 'properties' => array( + 'PublicIp' => array( + 'type' => 'string', + 'sentAs' => 'publicIp', + ), + 'PublicDnsName' => array( + 'type' => 'string', + 'sentAs' => 'publicDnsName', + ), + 'IpOwnerId' => array( + 'type' => 'string', + 'sentAs' => 'ipOwnerId', + ), + ), + ), + ), + ), + ), + ), + ), + ), + 'IamInstanceProfile' => array( + 'type' => 'object', + 'sentAs' => 'iamInstanceProfile', + 'properties' => array( + 'Arn' => array( + 'type' => 'string', + 'sentAs' => 'arn', + ), + 'Id' => array( + 'type' => 'string', + 'sentAs' => 'id', + ), + ), + ), + 'EbsOptimized' => array( + 'type' => 'boolean', + 'sentAs' => 'ebsOptimized', + ), + 'SriovNetSupport' => array( + 'type' => 'string', + 'sentAs' => 'sriovNetSupport', + ), + ), + ), + ), + ), + ), + 'StartInstancesResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'StartingInstances' => array( + 'type' => 'array', + 'location' => 'xml', + 'sentAs' => 'instancesSet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'InstanceId' => array( + 'type' => 'string', + 'sentAs' => 'instanceId', + ), + 'CurrentState' => array( + 'type' => 'object', + 'sentAs' => 'currentState', + 'properties' => array( + 'Code' => array( + 'type' => 'numeric', + 'sentAs' => 'code', + ), + 'Name' => array( + 'type' => 'string', + 'sentAs' => 'name', + ), + ), + ), + 'PreviousState' => array( + 'type' => 'object', + 'sentAs' => 'previousState', + 'properties' => array( + 'Code' => array( + 'type' => 'numeric', + 'sentAs' => 'code', + ), + 'Name' => array( + 'type' => 'string', + 'sentAs' => 'name', + ), + ), + ), + ), + ), + ), + ), + ), + 'StopInstancesResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'StoppingInstances' => array( + 'type' => 'array', + 'location' => 'xml', + 'sentAs' => 'instancesSet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'InstanceId' => array( + 'type' => 'string', + 'sentAs' => 'instanceId', + ), + 'CurrentState' => array( + 'type' => 'object', + 'sentAs' => 'currentState', + 'properties' => array( + 'Code' => array( + 'type' => 'numeric', + 'sentAs' => 'code', + ), + 'Name' => array( + 'type' => 'string', + 'sentAs' => 'name', + ), + ), + ), + 'PreviousState' => array( + 'type' => 'object', + 'sentAs' => 'previousState', + 'properties' => array( + 'Code' => array( + 'type' => 'numeric', + 'sentAs' => 'code', + ), + 'Name' => array( + 'type' => 'string', + 'sentAs' => 'name', + ), + ), + ), + ), + ), + ), + ), + ), + 'TerminateInstancesResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'TerminatingInstances' => array( + 'type' => 'array', + 'location' => 'xml', + 'sentAs' => 'instancesSet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'InstanceId' => array( + 'type' => 'string', + 'sentAs' => 'instanceId', + ), + 'CurrentState' => array( + 'type' => 'object', + 'sentAs' => 'currentState', + 'properties' => array( + 'Code' => array( + 'type' => 'numeric', + 'sentAs' => 'code', + ), + 'Name' => array( + 'type' => 'string', + 'sentAs' => 'name', + ), + ), + ), + 'PreviousState' => array( + 'type' => 'object', + 'sentAs' => 'previousState', + 'properties' => array( + 'Code' => array( + 'type' => 'numeric', + 'sentAs' => 'code', + ), + 'Name' => array( + 'type' => 'string', + 'sentAs' => 'name', + ), + ), + ), + ), + ), + ), + ), + ), + 'UnmonitorInstancesResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'InstanceMonitorings' => array( + 'type' => 'array', + 'location' => 'xml', + 'sentAs' => 'instancesSet', + 'items' => array( + 'name' => 'item', + 'type' => 'object', + 'sentAs' => 'item', + 'properties' => array( + 'InstanceId' => array( + 'type' => 'string', + 'sentAs' => 'instanceId', + ), + 'Monitoring' => array( + 'type' => 'object', + 'sentAs' => 'monitoring', + 'properties' => array( + 'State' => array( + 'type' => 'string', + 'sentAs' => 'state', + ), + ), + ), + ), + ), + ), + ), + ), + ), + 'iterators' => array( + 'DescribeAccountAttributes' => array( + 'result_key' => 'AccountAttributes', + ), + 'DescribeAddresses' => array( + 'result_key' => 'Addresses', + ), + 'DescribeAvailabilityZones' => array( + 'result_key' => 'AvailabilityZones', + ), + 'DescribeBundleTasks' => array( + 'result_key' => 'BundleTasks', + ), + 'DescribeConversionTasks' => array( + 'result_key' => 'ConversionTasks', + ), + 'DescribeCustomerGateways' => array( + 'result_key' => 'CustomerGateways', + ), + 'DescribeDhcpOptions' => array( + 'result_key' => 'DhcpOptions', + ), + 'DescribeExportTasks' => array( + 'result_key' => 'ExportTasks', + ), + 'DescribeImages' => array( + 'result_key' => 'Images', + ), + 'DescribeInstanceStatus' => array( + 'input_token' => 'NextToken', + 'output_token' => 'NextToken', + 'limit_key' => 'MaxResults', + 'result_key' => 'InstanceStatuses', + ), + 'DescribeInstances' => array( + 'input_token' => 'NextToken', + 'output_token' => 'NextToken', + 'limit_key' => 'MaxResults', + 'result_key' => 'Reservations', + ), + 'DescribeInternetGateways' => array( + 'result_key' => 'InternetGateways', + ), + 'DescribeKeyPairs' => array( + 'result_key' => 'KeyPairs', + ), + 'DescribeNetworkAcls' => array( + 'result_key' => 'NetworkAcls', + ), + 'DescribeNetworkInterfaces' => array( + 'result_key' => 'NetworkInterfaces', + ), + 'DescribePlacementGroups' => array( + 'result_key' => 'PlacementGroups', + ), + 'DescribeRegions' => array( + 'result_key' => 'Regions', + ), + 'DescribeReservedInstances' => array( + 'result_key' => 'ReservedInstances', + ), + 'DescribeReservedInstancesListings' => array( + 'result_key' => 'ReservedInstancesListings', + ), + 'DescribeReservedInstancesOfferings' => array( + 'input_token' => 'NextToken', + 'output_token' => 'NextToken', + 'limit_key' => 'MaxResults', + 'result_key' => 'ReservedInstancesOfferings', + ), + 'DescribeReservedInstancesModifications' => array( + 'input_token' => 'NextToken', + 'output_token' => 'NextToken', + 'result_key' => 'ReservedInstancesModifications', + ), + 'DescribeRouteTables' => array( + 'result_key' => 'RouteTables', + ), + 'DescribeSecurityGroups' => array( + 'result_key' => 'SecurityGroups', + ), + 'DescribeSnapshots' => array( + 'input_token' => 'NextToken', + 'output_token' => 'NextToken', + 'limit_key' => 'MaxResults', + 'result_key' => 'Snapshots', + ), + 'DescribeSpotInstanceRequests' => array( + 'result_key' => 'SpotInstanceRequests', + ), + 'DescribeSpotPriceHistory' => array( + 'input_token' => 'NextToken', + 'output_token' => 'NextToken', + 'limit_key' => 'MaxResults', + 'result_key' => 'SpotPriceHistory', + ), + 'DescribeSubnets' => array( + 'result_key' => 'Subnets', + ), + 'DescribeTags' => array( + 'result_key' => 'Tags', + ), + 'DescribeVolumeStatus' => array( + 'input_token' => 'NextToken', + 'output_token' => 'NextToken', + 'limit_key' => 'MaxResults', + 'result_key' => 'VolumeStatuses', + ), + 'DescribeVolumes' => array( + 'input_token' => 'NextToken', + 'output_token' => 'NextToken', + 'limit_key' => 'MaxResults', + 'result_key' => 'Volumes', + ), + 'DescribeVpcs' => array( + 'result_key' => 'Vpcs', + ), + 'DescribeVpnConnections' => array( + 'result_key' => 'VpnConnections', + ), + 'DescribeVpnGateways' => array( + 'result_key' => 'VpnGateways', + ), + ), + 'waiters' => array( + '__default__' => array( + 'interval' => 15, + 'max_attempts' => 40, + 'acceptor.type' => 'output', + ), + '__InstanceState' => array( + 'operation' => 'DescribeInstances', + 'acceptor.path' => 'Reservations/*/Instances/*/State/Name', + ), + 'InstanceRunning' => array( + 'extends' => '__InstanceState', + 'success.value' => 'running', + 'failure.value' => array( + 'shutting-down', + 'terminated', + 'stopping', + ), + ), + 'InstanceStopped' => array( + 'extends' => '__InstanceState', + 'success.value' => 'stopped', + 'failure.value' => array( + 'pending', + 'terminated', + ), + ), + 'InstanceTerminated' => array( + 'extends' => '__InstanceState', + 'success.value' => 'terminated', + 'failure.value' => array( + 'pending', + 'stopping', + ), + ), + '__ExportTaskState' => array( + 'operation' => 'DescribeExportTasks', + 'acceptor.path' => 'ExportTasks/*/State', + ), + 'ExportTaskCompleted' => array( + 'extends' => '__ExportTaskState', + 'success.value' => 'completed', + ), + 'ExportTaskCancelled' => array( + 'extends' => '__ExportTaskState', + 'success.value' => 'cancelled', + ), + 'SnapshotCompleted' => array( + 'operation' => 'DescribeSnapshots', + 'success.path' => 'Snapshots/*/State', + 'success.value' => 'completed', + ), + 'SubnetAvailable' => array( + 'operation' => 'DescribeSubnets', + 'success.path' => 'Subnets/*/State', + 'success.value' => 'available', + ), + '__VolumeStatus' => array( + 'operation' => 'DescribeVolumes', + 'acceptor.key' => 'VolumeStatuses/*/VolumeStatus/Status', + ), + 'VolumeAvailable' => array( + 'extends' => '__VolumeStatus', + 'success.value' => 'available', + 'failure.value' => array( + 'deleted', + ), + ), + 'VolumeInUse' => array( + 'extends' => '__VolumeStatus', + 'success.value' => 'in-use', + 'failure.value' => array( + 'deleted', + ), + ), + 'VolumeDeleted' => array( + 'extends' => '__VolumeStatus', + 'success.value' => 'deleted', + ), + 'VpcAvailable' => array( + 'operation' => 'DescribeVpcs', + 'success.path' => 'Vpcs/*/State', + 'success.value' => 'available', + ), + '__VpnConnectionState' => array( + 'operation' => 'DescribeVpnConnections', + 'acceptor.path' => 'VpnConnections/*/State', + ), + 'VpnConnectionAvailable' => array( + 'extends' => '__VpnConnectionState', + 'success.value' => 'available', + 'failure.value' => array( + 'deleting', + 'deleted', + ), + ), + 'VpnConnectionDeleted' => array( + 'extends' => '__VpnConnectionState', + 'success.value' => 'deleted', + 'failure.value' => array( + 'pending', + ), + ), + 'BundleTaskComplete' => array( + 'operation' => 'DescribeBundleTasks', + 'acceptor.path' => 'BundleTasks/*/State', + 'success.value' => 'complete', + 'failure.value' => array( + 'failed', + ), + ), + '__ConversionTaskState' => array( + 'operation' => 'DescribeConversionTasks', + 'acceptor.path' => 'ConversionTasks/*/State', + ), + 'ConversionTaskCompleted' => array( + 'extends' => '__ConversionTaskState', + 'success.value' => 'completed', + 'failure.value' => array( + 'cancelled', + 'cancelling', + ), + ), + 'ConversionTaskCancelled' => array( + 'extends' => '__ConversionTaskState', + 'success.value' => 'cancelled', + ), + '__CustomerGatewayState' => array( + 'operation' => 'DescribeCustomerGateways', + 'acceptor.path' => 'CustomerGateways/*/State', + ), + 'CustomerGatewayAvailable' => array( + 'extends' => '__CustomerGatewayState', + 'success.value' => 'available', + 'failure.value' => array( + 'deleted', + 'deleting', + ), + ), + 'ConversionTaskDeleted' => array( + 'extends' => '__CustomerGatewayState', + 'success.value' => 'deleted', + ), + ), +); diff --git a/inc/aws-sdk/Aws/Ecs/EcsClient.php b/inc/aws-sdk/Aws/Ecs/EcsClient.php new file mode 100644 index 0000000..aab47b6 --- /dev/null +++ b/inc/aws-sdk/Aws/Ecs/EcsClient.php @@ -0,0 +1,84 @@ +setConfig($config) + ->setConfigDefaults(array( + Options::VERSION => self::LATEST_API_VERSION, + Options::SERVICE_DESCRIPTION => __DIR__ . '/Resources/ecs-%s.php' + )) + ->setExceptionParser(new JsonQueryExceptionParser()) + ->build(); + } +} diff --git a/inc/aws-sdk/Aws/Ecs/Exception/EcsException.php b/inc/aws-sdk/Aws/Ecs/Exception/EcsException.php new file mode 100644 index 0000000..aed77d7 --- /dev/null +++ b/inc/aws-sdk/Aws/Ecs/Exception/EcsException.php @@ -0,0 +1,9 @@ + '2014-11-13', + 'endpointPrefix' => 'ecs', + 'serviceFullName' => 'Amazon EC2 Container Service', + 'serviceAbbreviation' => 'Amazon ECS', + 'serviceType' => 'json', + 'jsonVersion' => '1.1', + 'targetPrefix' => 'AmazonEC2ContainerServiceV20141113.', + 'signatureVersion' => 'v4', + 'namespace' => 'Ecs', + 'operations' => array( + 'CreateCluster' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'CreateClusterResponse', + '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' => 'AmazonEC2ContainerServiceV20141113.CreateCluster', + ), + 'clusterName' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'These errors are usually caused by a server-side issue.', + 'class' => 'ServerException', + ), + array( + 'reason' => 'These errors are usually caused by something the client did, such as use an action or resource on behalf of a user that doesn\'t have permission to use the action or resource, or specify an identifier that is not valid.', + 'class' => 'ClientException', + ), + ), + ), + 'CreateService' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'CreateServiceResponse', + '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' => 'AmazonEC2ContainerServiceV20141113.CreateService', + ), + 'cluster' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'serviceName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + ), + 'taskDefinition' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'loadBalancers' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'LoadBalancer', + 'type' => 'object', + 'properties' => array( + 'loadBalancerName' => array( + 'type' => 'string', + ), + 'containerName' => array( + 'type' => 'string', + ), + 'containerPort' => array( + 'type' => 'numeric', + ), + ), + ), + ), + 'desiredCount' => array( + 'type' => 'numeric', + 'location' => 'json', + ), + 'clientToken' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'role' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'These errors are usually caused by a server-side issue.', + 'class' => 'ServerException', + ), + array( + 'reason' => 'These errors are usually caused by something the client did, such as use an action or resource on behalf of a user that doesn\'t have permission to use the action or resource, or specify an identifier that is not valid.', + 'class' => 'ClientException', + ), + ), + ), + 'DeleteCluster' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'DeleteClusterResponse', + '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' => 'AmazonEC2ContainerServiceV20141113.DeleteCluster', + ), + 'cluster' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'These errors are usually caused by a server-side issue.', + 'class' => 'ServerException', + ), + array( + 'reason' => 'These errors are usually caused by something the client did, such as use an action or resource on behalf of a user that doesn\'t have permission to use the action or resource, or specify an identifier that is not valid.', + 'class' => 'ClientException', + ), + ), + ), + 'DeleteService' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'DeleteServiceResponse', + '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' => 'AmazonEC2ContainerServiceV20141113.DeleteService', + ), + 'cluster' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'service' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'These errors are usually caused by a server-side issue.', + 'class' => 'ServerException', + ), + array( + 'reason' => 'These errors are usually caused by something the client did, such as use an action or resource on behalf of a user that doesn\'t have permission to use the action or resource, or specify an identifier that is not valid.', + 'class' => 'ClientException', + ), + ), + ), + 'DeregisterContainerInstance' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'DeregisterContainerInstanceResponse', + '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' => 'AmazonEC2ContainerServiceV20141113.DeregisterContainerInstance', + ), + 'cluster' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'containerInstance' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + ), + 'force' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'json', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'These errors are usually caused by a server-side issue.', + 'class' => 'ServerException', + ), + array( + 'reason' => 'These errors are usually caused by something the client did, such as use an action or resource on behalf of a user that doesn\'t have permission to use the action or resource, or specify an identifier that is not valid.', + 'class' => 'ClientException', + ), + ), + ), + 'DeregisterTaskDefinition' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'DeregisterTaskDefinitionResponse', + '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' => 'AmazonEC2ContainerServiceV20141113.DeregisterTaskDefinition', + ), + 'taskDefinition' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'These errors are usually caused by a server-side issue.', + 'class' => 'ServerException', + ), + array( + 'reason' => 'These errors are usually caused by something the client did, such as use an action or resource on behalf of a user that doesn\'t have permission to use the action or resource, or specify an identifier that is not valid.', + 'class' => 'ClientException', + ), + ), + ), + 'DescribeClusters' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'DescribeClustersResponse', + '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' => 'AmazonEC2ContainerServiceV20141113.DescribeClusters', + ), + 'clusters' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'String', + 'type' => 'string', + ), + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'These errors are usually caused by a server-side issue.', + 'class' => 'ServerException', + ), + array( + 'reason' => 'These errors are usually caused by something the client did, such as use an action or resource on behalf of a user that doesn\'t have permission to use the action or resource, or specify an identifier that is not valid.', + 'class' => 'ClientException', + ), + ), + ), + 'DescribeContainerInstances' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'DescribeContainerInstancesResponse', + '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' => 'AmazonEC2ContainerServiceV20141113.DescribeContainerInstances', + ), + 'cluster' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'containerInstances' => array( + 'required' => true, + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'String', + 'type' => 'string', + ), + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'These errors are usually caused by a server-side issue.', + 'class' => 'ServerException', + ), + array( + 'reason' => 'These errors are usually caused by something the client did, such as use an action or resource on behalf of a user that doesn\'t have permission to use the action or resource, or specify an identifier that is not valid.', + 'class' => 'ClientException', + ), + ), + ), + 'DescribeServices' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'DescribeServicesResponse', + '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' => 'AmazonEC2ContainerServiceV20141113.DescribeServices', + ), + 'cluster' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'services' => array( + 'required' => true, + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'String', + 'type' => 'string', + ), + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'These errors are usually caused by a server-side issue.', + 'class' => 'ServerException', + ), + array( + 'reason' => 'These errors are usually caused by something the client did, such as use an action or resource on behalf of a user that doesn\'t have permission to use the action or resource, or specify an identifier that is not valid.', + 'class' => 'ClientException', + ), + ), + ), + 'DescribeTaskDefinition' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'DescribeTaskDefinitionResponse', + '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' => 'AmazonEC2ContainerServiceV20141113.DescribeTaskDefinition', + ), + 'taskDefinition' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'These errors are usually caused by a server-side issue.', + 'class' => 'ServerException', + ), + array( + 'reason' => 'These errors are usually caused by something the client did, such as use an action or resource on behalf of a user that doesn\'t have permission to use the action or resource, or specify an identifier that is not valid.', + 'class' => 'ClientException', + ), + ), + ), + 'DescribeTasks' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'DescribeTasksResponse', + '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' => 'AmazonEC2ContainerServiceV20141113.DescribeTasks', + ), + 'cluster' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'tasks' => array( + 'required' => true, + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'String', + 'type' => 'string', + ), + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'These errors are usually caused by a server-side issue.', + 'class' => 'ServerException', + ), + array( + 'reason' => 'These errors are usually caused by something the client did, such as use an action or resource on behalf of a user that doesn\'t have permission to use the action or resource, or specify an identifier that is not valid.', + 'class' => 'ClientException', + ), + ), + ), + 'DiscoverPollEndpoint' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'DiscoverPollEndpointResponse', + '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' => 'AmazonEC2ContainerServiceV20141113.DiscoverPollEndpoint', + ), + 'containerInstance' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'cluster' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'These errors are usually caused by a server-side issue.', + 'class' => 'ServerException', + ), + array( + 'reason' => 'These errors are usually caused by something the client did, such as use an action or resource on behalf of a user that doesn\'t have permission to use the action or resource, or specify an identifier that is not valid.', + 'class' => 'ClientException', + ), + ), + ), + 'ListClusters' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'ListClustersResponse', + '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' => 'AmazonEC2ContainerServiceV20141113.ListClusters', + ), + 'nextToken' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'maxResults' => array( + 'type' => 'numeric', + 'location' => 'json', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'These errors are usually caused by a server-side issue.', + 'class' => 'ServerException', + ), + array( + 'reason' => 'These errors are usually caused by something the client did, such as use an action or resource on behalf of a user that doesn\'t have permission to use the action or resource, or specify an identifier that is not valid.', + 'class' => 'ClientException', + ), + ), + ), + 'ListContainerInstances' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'ListContainerInstancesResponse', + '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' => 'AmazonEC2ContainerServiceV20141113.ListContainerInstances', + ), + 'cluster' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'nextToken' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'maxResults' => array( + 'type' => 'numeric', + 'location' => 'json', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'These errors are usually caused by a server-side issue.', + 'class' => 'ServerException', + ), + array( + 'reason' => 'These errors are usually caused by something the client did, such as use an action or resource on behalf of a user that doesn\'t have permission to use the action or resource, or specify an identifier that is not valid.', + 'class' => 'ClientException', + ), + ), + ), + 'ListServices' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'ListServicesResponse', + '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' => 'AmazonEC2ContainerServiceV20141113.ListServices', + ), + 'cluster' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'nextToken' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'maxResults' => array( + 'type' => 'numeric', + 'location' => 'json', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'These errors are usually caused by a server-side issue.', + 'class' => 'ServerException', + ), + array( + 'reason' => 'These errors are usually caused by something the client did, such as use an action or resource on behalf of a user that doesn\'t have permission to use the action or resource, or specify an identifier that is not valid.', + 'class' => 'ClientException', + ), + ), + ), + 'ListTaskDefinitionFamilies' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'ListTaskDefinitionFamiliesResponse', + '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' => 'AmazonEC2ContainerServiceV20141113.ListTaskDefinitionFamilies', + ), + 'familyPrefix' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'nextToken' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'maxResults' => array( + 'type' => 'numeric', + 'location' => 'json', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'These errors are usually caused by a server-side issue.', + 'class' => 'ServerException', + ), + array( + 'reason' => 'These errors are usually caused by something the client did, such as use an action or resource on behalf of a user that doesn\'t have permission to use the action or resource, or specify an identifier that is not valid.', + 'class' => 'ClientException', + ), + ), + ), + 'ListTaskDefinitions' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'ListTaskDefinitionsResponse', + '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' => 'AmazonEC2ContainerServiceV20141113.ListTaskDefinitions', + ), + 'familyPrefix' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'nextToken' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'maxResults' => array( + 'type' => 'numeric', + 'location' => 'json', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'These errors are usually caused by a server-side issue.', + 'class' => 'ServerException', + ), + array( + 'reason' => 'These errors are usually caused by something the client did, such as use an action or resource on behalf of a user that doesn\'t have permission to use the action or resource, or specify an identifier that is not valid.', + 'class' => 'ClientException', + ), + ), + ), + 'ListTasks' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'ListTasksResponse', + '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' => 'AmazonEC2ContainerServiceV20141113.ListTasks', + ), + 'cluster' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'containerInstance' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'family' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'nextToken' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'maxResults' => array( + 'type' => 'numeric', + 'location' => 'json', + ), + 'startedBy' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'serviceName' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'These errors are usually caused by a server-side issue.', + 'class' => 'ServerException', + ), + array( + 'reason' => 'These errors are usually caused by something the client did, such as use an action or resource on behalf of a user that doesn\'t have permission to use the action or resource, or specify an identifier that is not valid.', + 'class' => 'ClientException', + ), + ), + ), + 'RegisterContainerInstance' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'RegisterContainerInstanceResponse', + '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' => 'AmazonEC2ContainerServiceV20141113.RegisterContainerInstance', + ), + 'cluster' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'instanceIdentityDocument' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'instanceIdentityDocumentSignature' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'totalResources' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'Resource', + 'type' => 'object', + 'properties' => array( + '' => array( + ), + ), + ), + ), + 'versionInfo' => array( + 'type' => 'object', + 'location' => 'json', + 'properties' => array( + 'agentVersion' => array( + 'type' => 'string', + ), + 'agentHash' => array( + 'type' => 'string', + ), + 'dockerVersion' => array( + 'type' => 'string', + ), + ), + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'These errors are usually caused by a server-side issue.', + 'class' => 'ServerException', + ), + array( + 'reason' => 'These errors are usually caused by something the client did, such as use an action or resource on behalf of a user that doesn\'t have permission to use the action or resource, or specify an identifier that is not valid.', + 'class' => 'ClientException', + ), + ), + ), + 'RegisterTaskDefinition' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'RegisterTaskDefinitionResponse', + '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' => 'AmazonEC2ContainerServiceV20141113.RegisterTaskDefinition', + ), + 'family' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + ), + 'containerDefinitions' => array( + 'required' => true, + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'ContainerDefinition', + 'type' => 'object', + 'properties' => array( + 'name' => array( + 'type' => 'string', + ), + 'image' => array( + 'type' => 'string', + ), + 'cpu' => array( + 'type' => 'numeric', + ), + 'memory' => array( + 'type' => 'numeric', + ), + 'links' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'String', + 'type' => 'string', + ), + ), + 'portMappings' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'PortMapping', + 'type' => 'object', + 'properties' => array( + 'containerPort' => array( + 'type' => 'numeric', + ), + 'hostPort' => array( + 'type' => 'numeric', + ), + ), + ), + ), + 'essential' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + ), + 'entryPoint' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'String', + 'type' => 'string', + ), + ), + 'command' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'String', + 'type' => 'string', + ), + ), + 'environment' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'KeyValuePair', + 'type' => 'object', + 'properties' => array( + 'name' => array( + 'type' => 'string', + ), + 'value' => array( + 'type' => 'string', + ), + ), + ), + ), + 'mountPoints' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'MountPoint', + 'type' => 'object', + 'properties' => array( + 'sourceVolume' => array( + 'type' => 'string', + ), + 'containerPath' => array( + 'type' => 'string', + ), + 'readOnly' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + ), + ), + ), + ), + 'volumesFrom' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'VolumeFrom', + 'type' => 'object', + 'properties' => array( + 'sourceContainer' => array( + 'type' => 'string', + ), + 'readOnly' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + ), + ), + ), + ), + ), + ), + ), + 'volumes' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'Volume', + 'type' => 'object', + 'properties' => array( + 'name' => array( + 'type' => 'string', + ), + 'host' => array( + 'type' => 'object', + 'properties' => array( + 'sourcePath' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'These errors are usually caused by a server-side issue.', + 'class' => 'ServerException', + ), + array( + 'reason' => 'These errors are usually caused by something the client did, such as use an action or resource on behalf of a user that doesn\'t have permission to use the action or resource, or specify an identifier that is not valid.', + 'class' => 'ClientException', + ), + ), + ), + 'RunTask' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'RunTaskResponse', + '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' => 'AmazonEC2ContainerServiceV20141113.RunTask', + ), + 'cluster' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'taskDefinition' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + ), + 'overrides' => array( + 'type' => 'object', + 'location' => 'json', + 'properties' => array( + 'containerOverrides' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'ContainerOverride', + 'type' => 'object', + 'properties' => array( + 'name' => array( + 'type' => 'string', + ), + 'command' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'String', + 'type' => 'string', + ), + ), + ), + ), + ), + ), + ), + 'count' => array( + 'type' => 'numeric', + 'location' => 'json', + ), + 'startedBy' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'These errors are usually caused by a server-side issue.', + 'class' => 'ServerException', + ), + array( + 'reason' => 'These errors are usually caused by something the client did, such as use an action or resource on behalf of a user that doesn\'t have permission to use the action or resource, or specify an identifier that is not valid.', + 'class' => 'ClientException', + ), + ), + ), + 'StartTask' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'StartTaskResponse', + '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' => 'AmazonEC2ContainerServiceV20141113.StartTask', + ), + 'cluster' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'taskDefinition' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + ), + 'overrides' => array( + 'type' => 'object', + 'location' => 'json', + 'properties' => array( + 'containerOverrides' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'ContainerOverride', + 'type' => 'object', + 'properties' => array( + 'name' => array( + 'type' => 'string', + ), + 'command' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'String', + 'type' => 'string', + ), + ), + ), + ), + ), + ), + ), + 'containerInstances' => array( + 'required' => true, + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'String', + 'type' => 'string', + ), + ), + 'startedBy' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'These errors are usually caused by a server-side issue.', + 'class' => 'ServerException', + ), + array( + 'reason' => 'These errors are usually caused by something the client did, such as use an action or resource on behalf of a user that doesn\'t have permission to use the action or resource, or specify an identifier that is not valid.', + 'class' => 'ClientException', + ), + ), + ), + 'StopTask' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'StopTaskResponse', + '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' => 'AmazonEC2ContainerServiceV20141113.StopTask', + ), + 'cluster' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'task' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'These errors are usually caused by a server-side issue.', + 'class' => 'ServerException', + ), + array( + 'reason' => 'These errors are usually caused by something the client did, such as use an action or resource on behalf of a user that doesn\'t have permission to use the action or resource, or specify an identifier that is not valid.', + 'class' => 'ClientException', + ), + ), + ), + 'SubmitContainerStateChange' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'SubmitContainerStateChangeResponse', + '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' => 'AmazonEC2ContainerServiceV20141113.SubmitContainerStateChange', + ), + 'cluster' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'task' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'containerName' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'status' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'exitCode' => array( + 'type' => 'numeric', + 'location' => 'json', + ), + 'reason' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'networkBindings' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'NetworkBinding', + 'type' => 'object', + 'properties' => array( + 'bindIP' => array( + 'type' => 'string', + ), + 'containerPort' => array( + 'type' => 'numeric', + ), + 'hostPort' => array( + 'type' => 'numeric', + ), + ), + ), + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'These errors are usually caused by a server-side issue.', + 'class' => 'ServerException', + ), + array( + 'reason' => 'These errors are usually caused by something the client did, such as use an action or resource on behalf of a user that doesn\'t have permission to use the action or resource, or specify an identifier that is not valid.', + 'class' => 'ClientException', + ), + ), + ), + 'SubmitTaskStateChange' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'SubmitTaskStateChangeResponse', + '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' => 'AmazonEC2ContainerServiceV20141113.SubmitTaskStateChange', + ), + 'cluster' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'task' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'status' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'reason' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'These errors are usually caused by a server-side issue.', + 'class' => 'ServerException', + ), + array( + 'reason' => 'These errors are usually caused by something the client did, such as use an action or resource on behalf of a user that doesn\'t have permission to use the action or resource, or specify an identifier that is not valid.', + 'class' => 'ClientException', + ), + ), + ), + 'UpdateService' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'UpdateServiceResponse', + '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' => 'AmazonEC2ContainerServiceV20141113.UpdateService', + ), + 'cluster' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'service' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + ), + 'desiredCount' => array( + 'type' => 'numeric', + 'location' => 'json', + ), + 'taskDefinition' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'These errors are usually caused by a server-side issue.', + 'class' => 'ServerException', + ), + array( + 'reason' => 'These errors are usually caused by something the client did, such as use an action or resource on behalf of a user that doesn\'t have permission to use the action or resource, or specify an identifier that is not valid.', + 'class' => 'ClientException', + ), + ), + ), + ), + 'models' => array( + 'CreateClusterResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'cluster' => array( + 'type' => 'object', + 'location' => 'json', + 'properties' => array( + 'clusterArn' => array( + 'type' => 'string', + ), + 'clusterName' => array( + 'type' => 'string', + ), + 'status' => array( + 'type' => 'string', + ), + 'registeredContainerInstancesCount' => array( + 'type' => 'numeric', + ), + 'runningTasksCount' => array( + 'type' => 'numeric', + ), + 'pendingTasksCount' => array( + 'type' => 'numeric', + ), + ), + ), + ), + ), + 'CreateServiceResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'service' => array( + 'type' => 'object', + 'location' => 'json', + 'properties' => array( + 'serviceArn' => array( + 'type' => 'string', + ), + 'serviceName' => array( + 'type' => 'string', + ), + 'clusterArn' => array( + 'type' => 'string', + ), + 'loadBalancers' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'LoadBalancer', + 'type' => 'object', + 'properties' => array( + 'loadBalancerName' => array( + 'type' => 'string', + ), + 'containerName' => array( + 'type' => 'string', + ), + 'containerPort' => array( + 'type' => 'numeric', + ), + ), + ), + ), + 'status' => array( + 'type' => 'string', + ), + 'desiredCount' => array( + 'type' => 'numeric', + ), + 'runningCount' => array( + 'type' => 'numeric', + ), + 'pendingCount' => array( + 'type' => 'numeric', + ), + 'taskDefinition' => array( + 'type' => 'string', + ), + 'deployments' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Deployment', + 'type' => 'object', + 'properties' => array( + 'id' => array( + 'type' => 'string', + ), + 'status' => array( + 'type' => 'string', + ), + 'taskDefinition' => array( + 'type' => 'string', + ), + 'desiredCount' => array( + 'type' => 'numeric', + ), + 'pendingCount' => array( + 'type' => 'numeric', + ), + 'runningCount' => array( + 'type' => 'numeric', + ), + 'createdAt' => array( + 'type' => 'string', + ), + 'updatedAt' => array( + 'type' => 'string', + ), + ), + ), + ), + 'roleArn' => array( + 'type' => 'string', + ), + 'events' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'ServiceEvent', + 'type' => 'object', + 'properties' => array( + 'id' => array( + 'type' => 'string', + ), + 'createdAt' => array( + 'type' => 'string', + ), + 'message' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + ), + ), + 'DeleteClusterResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'cluster' => array( + 'type' => 'object', + 'location' => 'json', + 'properties' => array( + 'clusterArn' => array( + 'type' => 'string', + ), + 'clusterName' => array( + 'type' => 'string', + ), + 'status' => array( + 'type' => 'string', + ), + 'registeredContainerInstancesCount' => array( + 'type' => 'numeric', + ), + 'runningTasksCount' => array( + 'type' => 'numeric', + ), + 'pendingTasksCount' => array( + 'type' => 'numeric', + ), + ), + ), + ), + ), + 'DeleteServiceResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'service' => array( + 'type' => 'object', + 'location' => 'json', + 'properties' => array( + 'serviceArn' => array( + 'type' => 'string', + ), + 'serviceName' => array( + 'type' => 'string', + ), + 'clusterArn' => array( + 'type' => 'string', + ), + 'loadBalancers' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'LoadBalancer', + 'type' => 'object', + 'properties' => array( + 'loadBalancerName' => array( + 'type' => 'string', + ), + 'containerName' => array( + 'type' => 'string', + ), + 'containerPort' => array( + 'type' => 'numeric', + ), + ), + ), + ), + 'status' => array( + 'type' => 'string', + ), + 'desiredCount' => array( + 'type' => 'numeric', + ), + 'runningCount' => array( + 'type' => 'numeric', + ), + 'pendingCount' => array( + 'type' => 'numeric', + ), + 'taskDefinition' => array( + 'type' => 'string', + ), + 'deployments' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Deployment', + 'type' => 'object', + 'properties' => array( + 'id' => array( + 'type' => 'string', + ), + 'status' => array( + 'type' => 'string', + ), + 'taskDefinition' => array( + 'type' => 'string', + ), + 'desiredCount' => array( + 'type' => 'numeric', + ), + 'pendingCount' => array( + 'type' => 'numeric', + ), + 'runningCount' => array( + 'type' => 'numeric', + ), + 'createdAt' => array( + 'type' => 'string', + ), + 'updatedAt' => array( + 'type' => 'string', + ), + ), + ), + ), + 'roleArn' => array( + 'type' => 'string', + ), + 'events' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'ServiceEvent', + 'type' => 'object', + 'properties' => array( + 'id' => array( + 'type' => 'string', + ), + 'createdAt' => array( + 'type' => 'string', + ), + 'message' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + ), + ), + 'DeregisterContainerInstanceResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'containerInstance' => array( + 'type' => 'object', + 'location' => 'json', + 'properties' => array( + 'containerInstanceArn' => array( + 'type' => 'string', + ), + 'ec2InstanceId' => array( + 'type' => 'string', + ), + 'remainingResources' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Resource', + 'type' => 'object', + 'properties' => array( + '' => array( + ), + ), + ), + ), + 'registeredResources' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Resource', + 'type' => 'object', + 'properties' => array( + '' => array( + ), + ), + ), + ), + 'status' => array( + 'type' => 'string', + ), + 'agentConnected' => array( + 'type' => 'boolean', + ), + 'runningTasksCount' => array( + 'type' => 'numeric', + ), + 'pendingTasksCount' => array( + 'type' => 'numeric', + ), + ), + ), + ), + ), + 'DeregisterTaskDefinitionResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'taskDefinition' => array( + 'type' => 'object', + 'location' => 'json', + 'properties' => array( + 'taskDefinitionArn' => array( + 'type' => 'string', + ), + 'containerDefinitions' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'ContainerDefinition', + 'type' => 'object', + 'properties' => array( + 'name' => array( + 'type' => 'string', + ), + 'image' => array( + 'type' => 'string', + ), + 'cpu' => array( + 'type' => 'numeric', + ), + 'memory' => array( + 'type' => 'numeric', + ), + 'links' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'String', + 'type' => 'string', + ), + ), + 'portMappings' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'PortMapping', + 'type' => 'object', + 'properties' => array( + 'containerPort' => array( + 'type' => 'numeric', + ), + 'hostPort' => array( + 'type' => 'numeric', + ), + ), + ), + ), + 'essential' => array( + 'type' => 'boolean', + ), + 'entryPoint' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'String', + 'type' => 'string', + ), + ), + 'command' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'String', + 'type' => 'string', + ), + ), + 'environment' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'KeyValuePair', + 'type' => 'object', + 'properties' => array( + 'name' => array( + 'type' => 'string', + ), + 'value' => array( + 'type' => 'string', + ), + ), + ), + ), + 'mountPoints' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'MountPoint', + 'type' => 'object', + 'properties' => array( + 'sourceVolume' => array( + 'type' => 'string', + ), + 'containerPath' => array( + 'type' => 'string', + ), + 'readOnly' => array( + 'type' => 'boolean', + ), + ), + ), + ), + 'volumesFrom' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'VolumeFrom', + 'type' => 'object', + 'properties' => array( + 'sourceContainer' => array( + 'type' => 'string', + ), + 'readOnly' => array( + 'type' => 'boolean', + ), + ), + ), + ), + ), + ), + ), + 'family' => array( + 'type' => 'string', + ), + 'revision' => array( + 'type' => 'numeric', + ), + 'volumes' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Volume', + 'type' => 'object', + 'properties' => array( + 'name' => array( + 'type' => 'string', + ), + 'host' => array( + 'type' => 'object', + 'properties' => array( + 'sourcePath' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + ), + ), + ), + ), + 'DescribeClustersResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'clusters' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'Cluster', + 'type' => 'object', + 'properties' => array( + 'clusterArn' => array( + 'type' => 'string', + ), + 'clusterName' => array( + 'type' => 'string', + ), + 'status' => array( + 'type' => 'string', + ), + 'registeredContainerInstancesCount' => array( + 'type' => 'numeric', + ), + 'runningTasksCount' => array( + 'type' => 'numeric', + ), + 'pendingTasksCount' => array( + 'type' => 'numeric', + ), + ), + ), + ), + 'failures' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'Failure', + 'type' => 'object', + 'properties' => array( + 'arn' => array( + 'type' => 'string', + ), + 'reason' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + 'DescribeContainerInstancesResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'containerInstances' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'ContainerInstance', + 'type' => 'object', + 'properties' => array( + 'containerInstanceArn' => array( + 'type' => 'string', + ), + 'ec2InstanceId' => array( + 'type' => 'string', + ), + 'remainingResources' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Resource', + 'type' => 'object', + 'properties' => array( + '' => array( + ), + ), + ), + ), + 'registeredResources' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Resource', + 'type' => 'object', + 'properties' => array( + '' => array( + ), + ), + ), + ), + 'status' => array( + 'type' => 'string', + ), + 'agentConnected' => array( + 'type' => 'boolean', + ), + 'runningTasksCount' => array( + 'type' => 'numeric', + ), + 'pendingTasksCount' => array( + 'type' => 'numeric', + ), + ), + ), + ), + 'failures' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'Failure', + 'type' => 'object', + 'properties' => array( + 'arn' => array( + 'type' => 'string', + ), + 'reason' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + 'DescribeServicesResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'services' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'Service', + 'type' => 'object', + 'properties' => array( + 'serviceArn' => array( + 'type' => 'string', + ), + 'serviceName' => array( + 'type' => 'string', + ), + 'clusterArn' => array( + 'type' => 'string', + ), + 'loadBalancers' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'LoadBalancer', + 'type' => 'object', + 'properties' => array( + 'loadBalancerName' => array( + 'type' => 'string', + ), + 'containerName' => array( + 'type' => 'string', + ), + 'containerPort' => array( + 'type' => 'numeric', + ), + ), + ), + ), + 'status' => array( + 'type' => 'string', + ), + 'desiredCount' => array( + 'type' => 'numeric', + ), + 'runningCount' => array( + 'type' => 'numeric', + ), + 'pendingCount' => array( + 'type' => 'numeric', + ), + 'taskDefinition' => array( + 'type' => 'string', + ), + 'deployments' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Deployment', + 'type' => 'object', + 'properties' => array( + 'id' => array( + 'type' => 'string', + ), + 'status' => array( + 'type' => 'string', + ), + 'taskDefinition' => array( + 'type' => 'string', + ), + 'desiredCount' => array( + 'type' => 'numeric', + ), + 'pendingCount' => array( + 'type' => 'numeric', + ), + 'runningCount' => array( + 'type' => 'numeric', + ), + 'createdAt' => array( + 'type' => 'string', + ), + 'updatedAt' => array( + 'type' => 'string', + ), + ), + ), + ), + 'roleArn' => array( + 'type' => 'string', + ), + 'events' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'ServiceEvent', + 'type' => 'object', + 'properties' => array( + 'id' => array( + 'type' => 'string', + ), + 'createdAt' => array( + 'type' => 'string', + ), + 'message' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + ), + 'failures' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'Failure', + 'type' => 'object', + 'properties' => array( + 'arn' => array( + 'type' => 'string', + ), + 'reason' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + 'DescribeTaskDefinitionResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'taskDefinition' => array( + 'type' => 'object', + 'location' => 'json', + 'properties' => array( + 'taskDefinitionArn' => array( + 'type' => 'string', + ), + 'containerDefinitions' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'ContainerDefinition', + 'type' => 'object', + 'properties' => array( + 'name' => array( + 'type' => 'string', + ), + 'image' => array( + 'type' => 'string', + ), + 'cpu' => array( + 'type' => 'numeric', + ), + 'memory' => array( + 'type' => 'numeric', + ), + 'links' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'String', + 'type' => 'string', + ), + ), + 'portMappings' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'PortMapping', + 'type' => 'object', + 'properties' => array( + 'containerPort' => array( + 'type' => 'numeric', + ), + 'hostPort' => array( + 'type' => 'numeric', + ), + ), + ), + ), + 'essential' => array( + 'type' => 'boolean', + ), + 'entryPoint' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'String', + 'type' => 'string', + ), + ), + 'command' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'String', + 'type' => 'string', + ), + ), + 'environment' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'KeyValuePair', + 'type' => 'object', + 'properties' => array( + 'name' => array( + 'type' => 'string', + ), + 'value' => array( + 'type' => 'string', + ), + ), + ), + ), + 'mountPoints' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'MountPoint', + 'type' => 'object', + 'properties' => array( + 'sourceVolume' => array( + 'type' => 'string', + ), + 'containerPath' => array( + 'type' => 'string', + ), + 'readOnly' => array( + 'type' => 'boolean', + ), + ), + ), + ), + 'volumesFrom' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'VolumeFrom', + 'type' => 'object', + 'properties' => array( + 'sourceContainer' => array( + 'type' => 'string', + ), + 'readOnly' => array( + 'type' => 'boolean', + ), + ), + ), + ), + ), + ), + ), + 'family' => array( + 'type' => 'string', + ), + 'revision' => array( + 'type' => 'numeric', + ), + 'volumes' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Volume', + 'type' => 'object', + 'properties' => array( + 'name' => array( + 'type' => 'string', + ), + 'host' => array( + 'type' => 'object', + 'properties' => array( + 'sourcePath' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + ), + ), + ), + ), + 'DescribeTasksResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'tasks' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'Task', + 'type' => 'object', + 'properties' => array( + 'taskArn' => array( + 'type' => 'string', + ), + 'clusterArn' => array( + 'type' => 'string', + ), + 'taskDefinitionArn' => array( + 'type' => 'string', + ), + 'containerInstanceArn' => array( + 'type' => 'string', + ), + 'overrides' => array( + 'type' => 'object', + 'properties' => array( + 'containerOverrides' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'ContainerOverride', + 'type' => 'object', + 'properties' => array( + 'name' => array( + 'type' => 'string', + ), + 'command' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'String', + 'type' => 'string', + ), + ), + ), + ), + ), + ), + ), + 'lastStatus' => array( + 'type' => 'string', + ), + 'desiredStatus' => array( + 'type' => 'string', + ), + 'containers' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Container', + 'type' => 'object', + 'properties' => array( + 'containerArn' => array( + 'type' => 'string', + ), + 'taskArn' => array( + 'type' => 'string', + ), + 'name' => array( + 'type' => 'string', + ), + 'lastStatus' => array( + 'type' => 'string', + ), + 'exitCode' => array( + 'type' => 'numeric', + ), + 'reason' => array( + 'type' => 'string', + ), + 'networkBindings' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'NetworkBinding', + 'type' => 'object', + 'properties' => array( + 'bindIP' => array( + 'type' => 'string', + ), + 'containerPort' => array( + 'type' => 'numeric', + ), + 'hostPort' => array( + 'type' => 'numeric', + ), + ), + ), + ), + ), + ), + ), + 'startedBy' => array( + 'type' => 'string', + ), + ), + ), + ), + 'failures' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'Failure', + 'type' => 'object', + 'properties' => array( + 'arn' => array( + 'type' => 'string', + ), + 'reason' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + 'DiscoverPollEndpointResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'endpoint' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + ), + 'ListClustersResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'clusterArns' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'String', + 'type' => 'string', + ), + ), + 'nextToken' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + ), + 'ListContainerInstancesResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'containerInstanceArns' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'String', + 'type' => 'string', + ), + ), + 'nextToken' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + ), + 'ListServicesResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'serviceArns' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'String', + 'type' => 'string', + ), + ), + 'nextToken' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + ), + 'ListTaskDefinitionFamiliesResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'families' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'String', + 'type' => 'string', + ), + ), + 'nextToken' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + ), + 'ListTaskDefinitionsResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'taskDefinitionArns' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'String', + 'type' => 'string', + ), + ), + 'nextToken' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + ), + 'ListTasksResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'taskArns' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'String', + 'type' => 'string', + ), + ), + 'nextToken' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + ), + 'RegisterContainerInstanceResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'containerInstance' => array( + 'type' => 'object', + 'location' => 'json', + 'properties' => array( + 'containerInstanceArn' => array( + 'type' => 'string', + ), + 'ec2InstanceId' => array( + 'type' => 'string', + ), + 'remainingResources' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Resource', + 'type' => 'object', + 'properties' => array( + '' => array( + ), + ), + ), + ), + 'registeredResources' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Resource', + 'type' => 'object', + 'properties' => array( + '' => array( + ), + ), + ), + ), + 'status' => array( + 'type' => 'string', + ), + 'agentConnected' => array( + 'type' => 'boolean', + ), + 'runningTasksCount' => array( + 'type' => 'numeric', + ), + 'pendingTasksCount' => array( + 'type' => 'numeric', + ), + ), + ), + ), + ), + 'RegisterTaskDefinitionResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'taskDefinition' => array( + 'type' => 'object', + 'location' => 'json', + 'properties' => array( + 'taskDefinitionArn' => array( + 'type' => 'string', + ), + 'containerDefinitions' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'ContainerDefinition', + 'type' => 'object', + 'properties' => array( + 'name' => array( + 'type' => 'string', + ), + 'image' => array( + 'type' => 'string', + ), + 'cpu' => array( + 'type' => 'numeric', + ), + 'memory' => array( + 'type' => 'numeric', + ), + 'links' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'String', + 'type' => 'string', + ), + ), + 'portMappings' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'PortMapping', + 'type' => 'object', + 'properties' => array( + 'containerPort' => array( + 'type' => 'numeric', + ), + 'hostPort' => array( + 'type' => 'numeric', + ), + ), + ), + ), + 'essential' => array( + 'type' => 'boolean', + ), + 'entryPoint' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'String', + 'type' => 'string', + ), + ), + 'command' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'String', + 'type' => 'string', + ), + ), + 'environment' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'KeyValuePair', + 'type' => 'object', + 'properties' => array( + 'name' => array( + 'type' => 'string', + ), + 'value' => array( + 'type' => 'string', + ), + ), + ), + ), + 'mountPoints' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'MountPoint', + 'type' => 'object', + 'properties' => array( + 'sourceVolume' => array( + 'type' => 'string', + ), + 'containerPath' => array( + 'type' => 'string', + ), + 'readOnly' => array( + 'type' => 'boolean', + ), + ), + ), + ), + 'volumesFrom' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'VolumeFrom', + 'type' => 'object', + 'properties' => array( + 'sourceContainer' => array( + 'type' => 'string', + ), + 'readOnly' => array( + 'type' => 'boolean', + ), + ), + ), + ), + ), + ), + ), + 'family' => array( + 'type' => 'string', + ), + 'revision' => array( + 'type' => 'numeric', + ), + 'volumes' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Volume', + 'type' => 'object', + 'properties' => array( + 'name' => array( + 'type' => 'string', + ), + 'host' => array( + 'type' => 'object', + 'properties' => array( + 'sourcePath' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + ), + ), + ), + ), + 'RunTaskResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'tasks' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'Task', + 'type' => 'object', + 'properties' => array( + 'taskArn' => array( + 'type' => 'string', + ), + 'clusterArn' => array( + 'type' => 'string', + ), + 'taskDefinitionArn' => array( + 'type' => 'string', + ), + 'containerInstanceArn' => array( + 'type' => 'string', + ), + 'overrides' => array( + 'type' => 'object', + 'properties' => array( + 'containerOverrides' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'ContainerOverride', + 'type' => 'object', + 'properties' => array( + 'name' => array( + 'type' => 'string', + ), + 'command' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'String', + 'type' => 'string', + ), + ), + ), + ), + ), + ), + ), + 'lastStatus' => array( + 'type' => 'string', + ), + 'desiredStatus' => array( + 'type' => 'string', + ), + 'containers' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Container', + 'type' => 'object', + 'properties' => array( + 'containerArn' => array( + 'type' => 'string', + ), + 'taskArn' => array( + 'type' => 'string', + ), + 'name' => array( + 'type' => 'string', + ), + 'lastStatus' => array( + 'type' => 'string', + ), + 'exitCode' => array( + 'type' => 'numeric', + ), + 'reason' => array( + 'type' => 'string', + ), + 'networkBindings' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'NetworkBinding', + 'type' => 'object', + 'properties' => array( + 'bindIP' => array( + 'type' => 'string', + ), + 'containerPort' => array( + 'type' => 'numeric', + ), + 'hostPort' => array( + 'type' => 'numeric', + ), + ), + ), + ), + ), + ), + ), + 'startedBy' => array( + 'type' => 'string', + ), + ), + ), + ), + 'failures' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'Failure', + 'type' => 'object', + 'properties' => array( + 'arn' => array( + 'type' => 'string', + ), + 'reason' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + 'StartTaskResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'tasks' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'Task', + 'type' => 'object', + 'properties' => array( + 'taskArn' => array( + 'type' => 'string', + ), + 'clusterArn' => array( + 'type' => 'string', + ), + 'taskDefinitionArn' => array( + 'type' => 'string', + ), + 'containerInstanceArn' => array( + 'type' => 'string', + ), + 'overrides' => array( + 'type' => 'object', + 'properties' => array( + 'containerOverrides' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'ContainerOverride', + 'type' => 'object', + 'properties' => array( + 'name' => array( + 'type' => 'string', + ), + 'command' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'String', + 'type' => 'string', + ), + ), + ), + ), + ), + ), + ), + 'lastStatus' => array( + 'type' => 'string', + ), + 'desiredStatus' => array( + 'type' => 'string', + ), + 'containers' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Container', + 'type' => 'object', + 'properties' => array( + 'containerArn' => array( + 'type' => 'string', + ), + 'taskArn' => array( + 'type' => 'string', + ), + 'name' => array( + 'type' => 'string', + ), + 'lastStatus' => array( + 'type' => 'string', + ), + 'exitCode' => array( + 'type' => 'numeric', + ), + 'reason' => array( + 'type' => 'string', + ), + 'networkBindings' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'NetworkBinding', + 'type' => 'object', + 'properties' => array( + 'bindIP' => array( + 'type' => 'string', + ), + 'containerPort' => array( + 'type' => 'numeric', + ), + 'hostPort' => array( + 'type' => 'numeric', + ), + ), + ), + ), + ), + ), + ), + 'startedBy' => array( + 'type' => 'string', + ), + ), + ), + ), + 'failures' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'Failure', + 'type' => 'object', + 'properties' => array( + 'arn' => array( + 'type' => 'string', + ), + 'reason' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + 'StopTaskResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'task' => array( + 'type' => 'object', + 'location' => 'json', + 'properties' => array( + 'taskArn' => array( + 'type' => 'string', + ), + 'clusterArn' => array( + 'type' => 'string', + ), + 'taskDefinitionArn' => array( + 'type' => 'string', + ), + 'containerInstanceArn' => array( + 'type' => 'string', + ), + 'overrides' => array( + 'type' => 'object', + 'properties' => array( + 'containerOverrides' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'ContainerOverride', + 'type' => 'object', + 'properties' => array( + 'name' => array( + 'type' => 'string', + ), + 'command' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'String', + 'type' => 'string', + ), + ), + ), + ), + ), + ), + ), + 'lastStatus' => array( + 'type' => 'string', + ), + 'desiredStatus' => array( + 'type' => 'string', + ), + 'containers' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Container', + 'type' => 'object', + 'properties' => array( + 'containerArn' => array( + 'type' => 'string', + ), + 'taskArn' => array( + 'type' => 'string', + ), + 'name' => array( + 'type' => 'string', + ), + 'lastStatus' => array( + 'type' => 'string', + ), + 'exitCode' => array( + 'type' => 'numeric', + ), + 'reason' => array( + 'type' => 'string', + ), + 'networkBindings' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'NetworkBinding', + 'type' => 'object', + 'properties' => array( + 'bindIP' => array( + 'type' => 'string', + ), + 'containerPort' => array( + 'type' => 'numeric', + ), + 'hostPort' => array( + 'type' => 'numeric', + ), + ), + ), + ), + ), + ), + ), + 'startedBy' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + 'SubmitContainerStateChangeResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'acknowledgment' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + ), + 'SubmitTaskStateChangeResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'acknowledgment' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + ), + 'UpdateServiceResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'service' => array( + 'type' => 'object', + 'location' => 'json', + 'properties' => array( + 'serviceArn' => array( + 'type' => 'string', + ), + 'serviceName' => array( + 'type' => 'string', + ), + 'clusterArn' => array( + 'type' => 'string', + ), + 'loadBalancers' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'LoadBalancer', + 'type' => 'object', + 'properties' => array( + 'loadBalancerName' => array( + 'type' => 'string', + ), + 'containerName' => array( + 'type' => 'string', + ), + 'containerPort' => array( + 'type' => 'numeric', + ), + ), + ), + ), + 'status' => array( + 'type' => 'string', + ), + 'desiredCount' => array( + 'type' => 'numeric', + ), + 'runningCount' => array( + 'type' => 'numeric', + ), + 'pendingCount' => array( + 'type' => 'numeric', + ), + 'taskDefinition' => array( + 'type' => 'string', + ), + 'deployments' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Deployment', + 'type' => 'object', + 'properties' => array( + 'id' => array( + 'type' => 'string', + ), + 'status' => array( + 'type' => 'string', + ), + 'taskDefinition' => array( + 'type' => 'string', + ), + 'desiredCount' => array( + 'type' => 'numeric', + ), + 'pendingCount' => array( + 'type' => 'numeric', + ), + 'runningCount' => array( + 'type' => 'numeric', + ), + 'createdAt' => array( + 'type' => 'string', + ), + 'updatedAt' => array( + 'type' => 'string', + ), + ), + ), + ), + 'roleArn' => array( + 'type' => 'string', + ), + 'events' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'ServiceEvent', + 'type' => 'object', + 'properties' => array( + 'id' => array( + 'type' => 'string', + ), + 'createdAt' => array( + 'type' => 'string', + ), + 'message' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + ), + ), + ), +); diff --git a/inc/aws-sdk/Aws/ElastiCache/ElastiCacheClient.php b/inc/aws-sdk/Aws/ElastiCache/ElastiCacheClient.php index d176523..bb4d098 100755 --- a/inc/aws-sdk/Aws/ElastiCache/ElastiCacheClient.php +++ b/inc/aws-sdk/Aws/ElastiCache/ElastiCacheClient.php @@ -26,17 +26,21 @@ use Guzzle\Service\Resource\ResourceIteratorInterface; /** * Client to interact with Amazon ElastiCache * + * @method Model addTagsToResource(array $args = array()) {@command ElastiCache AddTagsToResource} * @method Model authorizeCacheSecurityGroupIngress(array $args = array()) {@command ElastiCache AuthorizeCacheSecurityGroupIngress} + * @method Model copySnapshot(array $args = array()) {@command ElastiCache CopySnapshot} * @method Model createCacheCluster(array $args = array()) {@command ElastiCache CreateCacheCluster} * @method Model createCacheParameterGroup(array $args = array()) {@command ElastiCache CreateCacheParameterGroup} * @method Model createCacheSecurityGroup(array $args = array()) {@command ElastiCache CreateCacheSecurityGroup} * @method Model createCacheSubnetGroup(array $args = array()) {@command ElastiCache CreateCacheSubnetGroup} * @method Model createReplicationGroup(array $args = array()) {@command ElastiCache CreateReplicationGroup} + * @method Model createSnapshot(array $args = array()) {@command ElastiCache CreateSnapshot} * @method Model deleteCacheCluster(array $args = array()) {@command ElastiCache DeleteCacheCluster} * @method Model deleteCacheParameterGroup(array $args = array()) {@command ElastiCache DeleteCacheParameterGroup} * @method Model deleteCacheSecurityGroup(array $args = array()) {@command ElastiCache DeleteCacheSecurityGroup} * @method Model deleteCacheSubnetGroup(array $args = array()) {@command ElastiCache DeleteCacheSubnetGroup} * @method Model deleteReplicationGroup(array $args = array()) {@command ElastiCache DeleteReplicationGroup} + * @method Model deleteSnapshot(array $args = array()) {@command ElastiCache DeleteSnapshot} * @method Model describeCacheClusters(array $args = array()) {@command ElastiCache DescribeCacheClusters} * @method Model describeCacheEngineVersions(array $args = array()) {@command ElastiCache DescribeCacheEngineVersions} * @method Model describeCacheParameterGroups(array $args = array()) {@command ElastiCache DescribeCacheParameterGroups} @@ -48,12 +52,15 @@ use Guzzle\Service\Resource\ResourceIteratorInterface; * @method Model describeReplicationGroups(array $args = array()) {@command ElastiCache DescribeReplicationGroups} * @method Model describeReservedCacheNodes(array $args = array()) {@command ElastiCache DescribeReservedCacheNodes} * @method Model describeReservedCacheNodesOfferings(array $args = array()) {@command ElastiCache DescribeReservedCacheNodesOfferings} + * @method Model describeSnapshots(array $args = array()) {@command ElastiCache DescribeSnapshots} + * @method Model listTagsForResource(array $args = array()) {@command ElastiCache ListTagsForResource} * @method Model modifyCacheCluster(array $args = array()) {@command ElastiCache ModifyCacheCluster} * @method Model modifyCacheParameterGroup(array $args = array()) {@command ElastiCache ModifyCacheParameterGroup} * @method Model modifyCacheSubnetGroup(array $args = array()) {@command ElastiCache ModifyCacheSubnetGroup} * @method Model modifyReplicationGroup(array $args = array()) {@command ElastiCache ModifyReplicationGroup} * @method Model purchaseReservedCacheNodesOffering(array $args = array()) {@command ElastiCache PurchaseReservedCacheNodesOffering} * @method Model rebootCacheCluster(array $args = array()) {@command ElastiCache RebootCacheCluster} + * @method Model removeTagsFromResource(array $args = array()) {@command ElastiCache RemoveTagsFromResource} * @method Model resetCacheParameterGroup(array $args = array()) {@command ElastiCache ResetCacheParameterGroup} * @method Model revokeCacheSecurityGroupIngress(array $args = array()) {@command ElastiCache RevokeCacheSecurityGroupIngress} * @method ResourceIteratorInterface getDescribeCacheClustersIterator(array $args = array()) The input array uses the parameters of the DescribeCacheClusters operation @@ -64,16 +71,17 @@ use Guzzle\Service\Resource\ResourceIteratorInterface; * @method ResourceIteratorInterface getDescribeCacheSubnetGroupsIterator(array $args = array()) The input array uses the parameters of the DescribeCacheSubnetGroups operation * @method ResourceIteratorInterface getDescribeEngineDefaultParametersIterator(array $args = array()) The input array uses the parameters of the DescribeEngineDefaultParameters operation * @method ResourceIteratorInterface getDescribeEventsIterator(array $args = array()) The input array uses the parameters of the DescribeEvents operation - * @method ResourceIteratorInterface getDescribeReplicationGroupsIterator(array $args = array()) The input array uses the parameters of the DescribeReplicationGroups operation * @method ResourceIteratorInterface getDescribeReservedCacheNodesIterator(array $args = array()) The input array uses the parameters of the DescribeReservedCacheNodes operation * @method ResourceIteratorInterface getDescribeReservedCacheNodesOfferingsIterator(array $args = array()) The input array uses the parameters of the DescribeReservedCacheNodesOfferings operation + * @method ResourceIteratorInterface getDescribeReplicationGroupsIterator(array $args = array()) The input array uses the parameters of the DescribeReplicationGroups operation + * @method ResourceIteratorInterface getDescribeSnapshotsIterator(array $args = array()) The input array uses the parameters of the DescribeSnapshots operation * - * @link http://docs.aws.amazon.com/aws-sdk-php/guide/latest/service-elasticache.html User guide - * @link http://docs.aws.amazon.com/aws-sdk-php/latest/class-Aws.ElastiCache.ElastiCacheClient.html API docs + * @link http://docs.aws.amazon.com/aws-sdk-php/v2/guide/service-elasticache.html User guide + * @link http://docs.aws.amazon.com/aws-sdk-php/v2/api/class-Aws.ElastiCache.ElastiCacheClient.html API docs */ class ElastiCacheClient extends AbstractClient { - const LATEST_API_VERSION = '2013-06-15'; + const LATEST_API_VERSION = '2015-02-02'; /** * Factory method to create a new Amazon ElastiCache client using an array of configuration options. @@ -81,7 +89,7 @@ class ElastiCacheClient extends AbstractClient * @param array|Collection $config Client configuration data * * @return self - * @see \Aws\Common\Client\DefaultClient for a list of available configuration options + * @link http://docs.aws.amazon.com/aws-sdk-php/v2/guide/configuration.html#client-configuration-options */ public static function factory($config = array()) { diff --git a/inc/aws-sdk/Aws/ElastiCache/Exception/CacheClusterAlreadyExistsException.php b/inc/aws-sdk/Aws/ElastiCache/Exception/CacheClusterAlreadyExistsException.php index 2672e8a..4d4c7eb 100755 --- a/inc/aws-sdk/Aws/ElastiCache/Exception/CacheClusterAlreadyExistsException.php +++ b/inc/aws-sdk/Aws/ElastiCache/Exception/CacheClusterAlreadyExistsException.php @@ -17,6 +17,6 @@ namespace Aws\ElastiCache\Exception; /** - * This user already has a cache cluster with the given identifier. + * You already have a cache cluster with the given identifier. */ class CacheClusterAlreadyExistsException extends ElastiCacheException {} diff --git a/inc/aws-sdk/Aws/ElastiCache/Exception/ReservedCacheNodeAlreadyExistsException.php b/inc/aws-sdk/Aws/ElastiCache/Exception/ReservedCacheNodeAlreadyExistsException.php index 404ea1c..3efe0cf 100755 --- a/inc/aws-sdk/Aws/ElastiCache/Exception/ReservedCacheNodeAlreadyExistsException.php +++ b/inc/aws-sdk/Aws/ElastiCache/Exception/ReservedCacheNodeAlreadyExistsException.php @@ -17,6 +17,6 @@ namespace Aws\ElastiCache\Exception; /** - * This user already has a reservation with the given identifier. + * You already have a reservation with the given identifier. */ class ReservedCacheNodeAlreadyExistsException extends ElastiCacheException {} diff --git a/inc/aws-sdk/Aws/ElastiCache/Resources/elasticache-2015-02-02.php b/inc/aws-sdk/Aws/ElastiCache/Resources/elasticache-2015-02-02.php new file mode 100644 index 0000000..6af8559 --- /dev/null +++ b/inc/aws-sdk/Aws/ElastiCache/Resources/elasticache-2015-02-02.php @@ -0,0 +1,4099 @@ + '2015-02-02', + 'endpointPrefix' => 'elasticache', + 'serviceFullName' => 'Amazon ElastiCache', + 'serviceType' => 'query', + 'resultWrapped' => true, + 'signatureVersion' => 'v4', + 'namespace' => 'ElastiCache', + 'regions' => array( + 'us-east-1' => array( + 'http' => false, + 'https' => true, + 'hostname' => 'elasticache.us-east-1.amazonaws.com', + ), + 'us-west-1' => array( + 'http' => false, + 'https' => true, + 'hostname' => 'elasticache.us-west-1.amazonaws.com', + ), + 'us-west-2' => array( + 'http' => false, + 'https' => true, + 'hostname' => 'elasticache.us-west-2.amazonaws.com', + ), + 'eu-west-1' => array( + 'http' => false, + 'https' => true, + 'hostname' => 'elasticache.eu-west-1.amazonaws.com', + ), + 'ap-northeast-1' => array( + 'http' => false, + 'https' => true, + 'hostname' => 'elasticache.ap-northeast-1.amazonaws.com', + ), + 'ap-southeast-1' => array( + 'http' => false, + 'https' => true, + 'hostname' => 'elasticache.ap-southeast-1.amazonaws.com', + ), + 'ap-southeast-2' => array( + 'http' => false, + 'https' => true, + 'hostname' => 'elasticache.ap-southeast-2.amazonaws.com', + ), + 'sa-east-1' => array( + 'http' => false, + 'https' => true, + 'hostname' => 'elasticache.sa-east-1.amazonaws.com', + ), + 'cn-north-1' => array( + 'http' => false, + 'https' => true, + 'hostname' => 'elasticache.cn-north-1.amazonaws.com.cn', + ), + ), + 'operations' => array( + 'AddTagsToResource' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'TagListMessage', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'AddTagsToResource', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-02-02', + ), + 'ResourceName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'Tags' => array( + 'required' => true, + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'Tags.member', + 'items' => array( + 'name' => 'Tag', + 'type' => 'object', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + ), + 'Value' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The requested cache cluster ID does not refer to an existing cache cluster.', + 'class' => 'CacheClusterNotFoundException', + ), + array( + 'reason' => 'The requested snapshot name does not refer to an existing snapshot.', + 'class' => 'SnapshotNotFoundException', + ), + array( + 'reason' => 'The request cannot be processed because it would cause the resource to have more than the allowed number of tags. The maximum number of tags permitted on a resource is 10.', + 'class' => 'TagQuotaPerResourceExceededException', + ), + array( + 'reason' => 'The requested Amazon Resource Name (ARN) does not refer to an existing resource.', + 'class' => 'InvalidARNException', + ), + ), + ), + 'AuthorizeCacheSecurityGroupIngress' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'CacheSecurityGroupWrapper', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'AuthorizeCacheSecurityGroupIngress', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-02-02', + ), + 'CacheSecurityGroupName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'EC2SecurityGroupName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'EC2SecurityGroupOwnerId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The requested cache security group name does not refer to an existing cache security group.', + 'class' => 'CacheSecurityGroupNotFoundException', + ), + array( + 'reason' => 'The current state of the cache security group does not allow deletion.', + 'class' => 'InvalidCacheSecurityGroupStateException', + ), + array( + 'reason' => 'The specified Amazon EC2 security group is already authorized for the specified cache security group.', + 'class' => 'AuthorizationAlreadyExistsException', + ), + array( + 'reason' => 'The value for a parameter is invalid.', + 'class' => 'InvalidParameterValueException', + ), + array( + 'reason' => 'Two or more incompatible parameters were specified.', + 'class' => 'InvalidParameterCombinationException', + ), + ), + ), + 'CopySnapshot' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'SnapshotWrapper', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'CopySnapshot', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-02-02', + ), + 'SourceSnapshotName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'TargetSnapshotName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'You already have a snapshot with the given name.', + 'class' => 'SnapshotAlreadyExistsException', + ), + array( + 'reason' => 'The requested snapshot name does not refer to an existing snapshot.', + 'class' => 'SnapshotNotFoundException', + ), + array( + 'reason' => 'The request cannot be processed because it would exceed the maximum number of snapshots.', + 'class' => 'SnapshotQuotaExceededException', + ), + array( + 'reason' => 'The current state of the snapshot does not allow the requested action to occur.', + 'class' => 'InvalidSnapshotStateException', + ), + array( + 'reason' => 'The value for a parameter is invalid.', + 'class' => 'InvalidParameterValueException', + ), + array( + 'reason' => 'Two or more incompatible parameters were specified.', + 'class' => 'InvalidParameterCombinationException', + ), + ), + ), + 'CreateCacheCluster' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'CacheClusterWrapper', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'CreateCacheCluster', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-02-02', + ), + 'CacheClusterId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'ReplicationGroupId' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'AZMode' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'PreferredAvailabilityZone' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'PreferredAvailabilityZones' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'PreferredAvailabilityZones.member', + 'items' => array( + 'name' => 'PreferredAvailabilityZone', + 'type' => 'string', + ), + ), + 'NumCacheNodes' => array( + 'type' => 'numeric', + 'location' => 'aws.query', + ), + 'CacheNodeType' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'Engine' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'EngineVersion' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'CacheParameterGroupName' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'CacheSubnetGroupName' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'CacheSecurityGroupNames' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'CacheSecurityGroupNames.member', + 'items' => array( + 'name' => 'CacheSecurityGroupName', + 'type' => 'string', + ), + ), + 'SecurityGroupIds' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'SecurityGroupIds.member', + 'items' => array( + 'name' => 'SecurityGroupId', + 'type' => 'string', + ), + ), + 'Tags' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'Tags.member', + 'items' => array( + 'name' => 'Tag', + 'type' => 'object', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + ), + 'Value' => array( + 'type' => 'string', + ), + ), + ), + ), + 'SnapshotArns' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'SnapshotArns.member', + 'items' => array( + 'name' => 'SnapshotArn', + 'type' => 'string', + ), + ), + 'SnapshotName' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'PreferredMaintenanceWindow' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'Port' => array( + 'type' => 'numeric', + 'location' => 'aws.query', + ), + 'NotificationTopicArn' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'AutoMinorVersionUpgrade' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'SnapshotRetentionLimit' => array( + 'type' => 'numeric', + 'location' => 'aws.query', + ), + 'SnapshotWindow' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The specified replication group does not exist.', + 'class' => 'ReplicationGroupNotFoundException', + ), + array( + 'reason' => 'The requested replication group is not in the available state.', + 'class' => 'InvalidReplicationGroupStateException', + ), + array( + 'reason' => 'You already have a cache cluster with the given identifier.', + 'class' => 'CacheClusterAlreadyExistsException', + ), + array( + 'reason' => 'The requested cache node type is not available in the specified Availability Zone.', + 'class' => 'InsufficientCacheClusterCapacityException', + ), + array( + 'reason' => 'The requested cache security group name does not refer to an existing cache security group.', + 'class' => 'CacheSecurityGroupNotFoundException', + ), + array( + 'reason' => 'The requested cache subnet group name does not refer to an existing cache subnet group.', + 'class' => 'CacheSubnetGroupNotFoundException', + ), + array( + 'reason' => 'The request cannot be processed because it would exceed the allowed number of cache clusters per customer.', + 'class' => 'ClusterQuotaForCustomerExceededException', + ), + array( + 'reason' => 'The request cannot be processed because it would exceed the allowed number of cache nodes in a single cache cluster.', + 'class' => 'NodeQuotaForClusterExceededException', + ), + array( + 'reason' => 'The request cannot be processed because it would exceed the allowed number of cache nodes per customer.', + 'class' => 'NodeQuotaForCustomerExceededException', + ), + array( + 'reason' => 'The requested cache parameter group name does not refer to an existing cache parameter group.', + 'class' => 'CacheParameterGroupNotFoundException', + ), + array( + 'reason' => 'The VPC network is in an invalid state.', + 'class' => 'InvalidVPCNetworkStateException', + ), + array( + 'reason' => 'The request cannot be processed because it would cause the resource to have more than the allowed number of tags. The maximum number of tags permitted on a resource is 10.', + 'class' => 'TagQuotaPerResourceExceededException', + ), + array( + 'reason' => 'The value for a parameter is invalid.', + 'class' => 'InvalidParameterValueException', + ), + array( + 'reason' => 'Two or more incompatible parameters were specified.', + 'class' => 'InvalidParameterCombinationException', + ), + ), + ), + 'CreateCacheParameterGroup' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'CacheParameterGroupWrapper', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'CreateCacheParameterGroup', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-02-02', + ), + 'CacheParameterGroupName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'CacheParameterGroupFamily' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'Description' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The request cannot be processed because it would exceed the maximum number of cache security groups.', + 'class' => 'CacheParameterGroupQuotaExceededException', + ), + array( + 'reason' => 'A cache parameter group with the requested name already exists.', + 'class' => 'CacheParameterGroupAlreadyExistsException', + ), + array( + 'reason' => 'The current state of the cache parameter group does not allow the requested action to occur.', + 'class' => 'InvalidCacheParameterGroupStateException', + ), + array( + 'reason' => 'The value for a parameter is invalid.', + 'class' => 'InvalidParameterValueException', + ), + array( + 'reason' => 'Two or more incompatible parameters were specified.', + 'class' => 'InvalidParameterCombinationException', + ), + ), + ), + 'CreateCacheSecurityGroup' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'CacheSecurityGroupWrapper', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'CreateCacheSecurityGroup', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-02-02', + ), + 'CacheSecurityGroupName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'Description' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'A cache security group with the specified name already exists.', + 'class' => 'CacheSecurityGroupAlreadyExistsException', + ), + array( + 'reason' => 'The request cannot be processed because it would exceed the allowed number of cache security groups.', + 'class' => 'CacheSecurityGroupQuotaExceededException', + ), + array( + 'reason' => 'The value for a parameter is invalid.', + 'class' => 'InvalidParameterValueException', + ), + array( + 'reason' => 'Two or more incompatible parameters were specified.', + 'class' => 'InvalidParameterCombinationException', + ), + ), + ), + 'CreateCacheSubnetGroup' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'CacheSubnetGroupWrapper', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'CreateCacheSubnetGroup', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-02-02', + ), + 'CacheSubnetGroupName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'CacheSubnetGroupDescription' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'SubnetIds' => array( + 'required' => true, + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'SubnetIds.member', + 'items' => array( + 'name' => 'SubnetIdentifier', + 'type' => 'string', + ), + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The requested cache subnet group name is already in use by an existing cache subnet group.', + 'class' => 'CacheSubnetGroupAlreadyExistsException', + ), + array( + 'reason' => 'The request cannot be processed because it would exceed the allowed number of cache subnet groups.', + 'class' => 'CacheSubnetGroupQuotaExceededException', + ), + array( + 'reason' => 'The request cannot be processed because it would exceed the allowed number of subnets in a cache subnet group.', + 'class' => 'CacheSubnetQuotaExceededException', + ), + array( + 'reason' => 'An invalid subnet identifier was specified.', + 'class' => 'InvalidSubnetException', + ), + ), + ), + 'CreateReplicationGroup' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'ReplicationGroupWrapper', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'CreateReplicationGroup', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-02-02', + ), + 'ReplicationGroupId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'ReplicationGroupDescription' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'PrimaryClusterId' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'AutomaticFailoverEnabled' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'NumCacheClusters' => array( + 'type' => 'numeric', + 'location' => 'aws.query', + ), + 'PreferredCacheClusterAZs' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'PreferredCacheClusterAZs.member', + 'items' => array( + 'name' => 'AvailabilityZone', + 'type' => 'string', + ), + ), + 'CacheNodeType' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'Engine' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'EngineVersion' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'CacheParameterGroupName' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'CacheSubnetGroupName' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'CacheSecurityGroupNames' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'CacheSecurityGroupNames.member', + 'items' => array( + 'name' => 'CacheSecurityGroupName', + 'type' => 'string', + ), + ), + 'SecurityGroupIds' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'SecurityGroupIds.member', + 'items' => array( + 'name' => 'SecurityGroupId', + 'type' => 'string', + ), + ), + 'Tags' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'Tags.member', + 'items' => array( + 'name' => 'Tag', + 'type' => 'object', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + ), + 'Value' => array( + 'type' => 'string', + ), + ), + ), + ), + 'SnapshotArns' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'SnapshotArns.member', + 'items' => array( + 'name' => 'SnapshotArn', + 'type' => 'string', + ), + ), + 'SnapshotName' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'PreferredMaintenanceWindow' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'Port' => array( + 'type' => 'numeric', + 'location' => 'aws.query', + ), + 'NotificationTopicArn' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'AutoMinorVersionUpgrade' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'SnapshotRetentionLimit' => array( + 'type' => 'numeric', + 'location' => 'aws.query', + ), + 'SnapshotWindow' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The requested cache cluster ID does not refer to an existing cache cluster.', + 'class' => 'CacheClusterNotFoundException', + ), + array( + 'reason' => 'The requested cache cluster is not in the available state.', + 'class' => 'InvalidCacheClusterStateException', + ), + array( + 'reason' => 'The specified replication group already exists.', + 'class' => 'ReplicationGroupAlreadyExistsException', + ), + array( + 'reason' => 'The requested cache node type is not available in the specified Availability Zone.', + 'class' => 'InsufficientCacheClusterCapacityException', + ), + array( + 'reason' => 'The requested cache security group name does not refer to an existing cache security group.', + 'class' => 'CacheSecurityGroupNotFoundException', + ), + array( + 'reason' => 'The requested cache subnet group name does not refer to an existing cache subnet group.', + 'class' => 'CacheSubnetGroupNotFoundException', + ), + array( + 'reason' => 'The request cannot be processed because it would exceed the allowed number of cache clusters per customer.', + 'class' => 'ClusterQuotaForCustomerExceededException', + ), + array( + 'reason' => 'The request cannot be processed because it would exceed the allowed number of cache nodes in a single cache cluster.', + 'class' => 'NodeQuotaForClusterExceededException', + ), + array( + 'reason' => 'The request cannot be processed because it would exceed the allowed number of cache nodes per customer.', + 'class' => 'NodeQuotaForCustomerExceededException', + ), + array( + 'reason' => 'The requested cache parameter group name does not refer to an existing cache parameter group.', + 'class' => 'CacheParameterGroupNotFoundException', + ), + array( + 'reason' => 'The VPC network is in an invalid state.', + 'class' => 'InvalidVPCNetworkStateException', + ), + array( + 'reason' => 'The request cannot be processed because it would cause the resource to have more than the allowed number of tags. The maximum number of tags permitted on a resource is 10.', + 'class' => 'TagQuotaPerResourceExceededException', + ), + array( + 'reason' => 'The value for a parameter is invalid.', + 'class' => 'InvalidParameterValueException', + ), + array( + 'reason' => 'Two or more incompatible parameters were specified.', + 'class' => 'InvalidParameterCombinationException', + ), + ), + ), + 'CreateSnapshot' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'SnapshotWrapper', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'CreateSnapshot', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-02-02', + ), + 'CacheClusterId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'SnapshotName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'You already have a snapshot with the given name.', + 'class' => 'SnapshotAlreadyExistsException', + ), + array( + 'reason' => 'The requested cache cluster ID does not refer to an existing cache cluster.', + 'class' => 'CacheClusterNotFoundException', + ), + array( + 'reason' => 'The requested cache cluster is not in the available state.', + 'class' => 'InvalidCacheClusterStateException', + ), + array( + 'reason' => 'The request cannot be processed because it would exceed the maximum number of snapshots.', + 'class' => 'SnapshotQuotaExceededException', + ), + array( + 'reason' => 'You attempted one of the following actions: Creating a snapshot of a Redis cache cluster running on a t1.micro cache node. Creating a snapshot of a cache cluster that is running Memcached rather than Redis. Neither of these are supported by ElastiCache.', + 'class' => 'SnapshotFeatureNotSupportedException', + ), + array( + 'reason' => 'Two or more incompatible parameters were specified.', + 'class' => 'InvalidParameterCombinationException', + ), + array( + 'reason' => 'The value for a parameter is invalid.', + 'class' => 'InvalidParameterValueException', + ), + ), + ), + 'DeleteCacheCluster' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'CacheClusterWrapper', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DeleteCacheCluster', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-02-02', + ), + 'CacheClusterId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'FinalSnapshotIdentifier' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The requested cache cluster ID does not refer to an existing cache cluster.', + 'class' => 'CacheClusterNotFoundException', + ), + array( + 'reason' => 'The requested cache cluster is not in the available state.', + 'class' => 'InvalidCacheClusterStateException', + ), + array( + 'reason' => 'You already have a snapshot with the given name.', + 'class' => 'SnapshotAlreadyExistsException', + ), + array( + 'reason' => 'You attempted one of the following actions: Creating a snapshot of a Redis cache cluster running on a t1.micro cache node. Creating a snapshot of a cache cluster that is running Memcached rather than Redis. Neither of these are supported by ElastiCache.', + 'class' => 'SnapshotFeatureNotSupportedException', + ), + array( + 'reason' => 'The request cannot be processed because it would exceed the maximum number of snapshots.', + 'class' => 'SnapshotQuotaExceededException', + ), + array( + 'reason' => 'The value for a parameter is invalid.', + 'class' => 'InvalidParameterValueException', + ), + array( + 'reason' => 'Two or more incompatible parameters were specified.', + 'class' => 'InvalidParameterCombinationException', + ), + ), + ), + 'DeleteCacheParameterGroup' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'EmptyOutput', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DeleteCacheParameterGroup', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-02-02', + ), + 'CacheParameterGroupName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The current state of the cache parameter group does not allow the requested action to occur.', + 'class' => 'InvalidCacheParameterGroupStateException', + ), + array( + 'reason' => 'The requested cache parameter group name does not refer to an existing cache parameter group.', + 'class' => 'CacheParameterGroupNotFoundException', + ), + array( + 'reason' => 'The value for a parameter is invalid.', + 'class' => 'InvalidParameterValueException', + ), + array( + 'reason' => 'Two or more incompatible parameters were specified.', + 'class' => 'InvalidParameterCombinationException', + ), + ), + ), + 'DeleteCacheSecurityGroup' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'EmptyOutput', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DeleteCacheSecurityGroup', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-02-02', + ), + 'CacheSecurityGroupName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The current state of the cache security group does not allow deletion.', + 'class' => 'InvalidCacheSecurityGroupStateException', + ), + array( + 'reason' => 'The requested cache security group name does not refer to an existing cache security group.', + 'class' => 'CacheSecurityGroupNotFoundException', + ), + array( + 'reason' => 'The value for a parameter is invalid.', + 'class' => 'InvalidParameterValueException', + ), + array( + 'reason' => 'Two or more incompatible parameters were specified.', + 'class' => 'InvalidParameterCombinationException', + ), + ), + ), + 'DeleteCacheSubnetGroup' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'EmptyOutput', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DeleteCacheSubnetGroup', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-02-02', + ), + 'CacheSubnetGroupName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The requested cache subnet group is currently in use.', + 'class' => 'CacheSubnetGroupInUseException', + ), + array( + 'reason' => 'The requested cache subnet group name does not refer to an existing cache subnet group.', + 'class' => 'CacheSubnetGroupNotFoundException', + ), + ), + ), + 'DeleteReplicationGroup' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'ReplicationGroupWrapper', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DeleteReplicationGroup', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-02-02', + ), + 'ReplicationGroupId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'RetainPrimaryCluster' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'FinalSnapshotIdentifier' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The specified replication group does not exist.', + 'class' => 'ReplicationGroupNotFoundException', + ), + array( + 'reason' => 'The requested replication group is not in the available state.', + 'class' => 'InvalidReplicationGroupStateException', + ), + array( + 'reason' => 'You already have a snapshot with the given name.', + 'class' => 'SnapshotAlreadyExistsException', + ), + array( + 'reason' => 'You attempted one of the following actions: Creating a snapshot of a Redis cache cluster running on a t1.micro cache node. Creating a snapshot of a cache cluster that is running Memcached rather than Redis. Neither of these are supported by ElastiCache.', + 'class' => 'SnapshotFeatureNotSupportedException', + ), + array( + 'reason' => 'The request cannot be processed because it would exceed the maximum number of snapshots.', + 'class' => 'SnapshotQuotaExceededException', + ), + array( + 'reason' => 'The value for a parameter is invalid.', + 'class' => 'InvalidParameterValueException', + ), + array( + 'reason' => 'Two or more incompatible parameters were specified.', + 'class' => 'InvalidParameterCombinationException', + ), + ), + ), + 'DeleteSnapshot' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'SnapshotWrapper', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DeleteSnapshot', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-02-02', + ), + 'SnapshotName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The requested snapshot name does not refer to an existing snapshot.', + 'class' => 'SnapshotNotFoundException', + ), + array( + 'reason' => 'The current state of the snapshot does not allow the requested action to occur.', + 'class' => 'InvalidSnapshotStateException', + ), + array( + 'reason' => 'The value for a parameter is invalid.', + 'class' => 'InvalidParameterValueException', + ), + array( + 'reason' => 'Two or more incompatible parameters were specified.', + 'class' => 'InvalidParameterCombinationException', + ), + ), + ), + 'DescribeCacheClusters' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'CacheClusterMessage', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DescribeCacheClusters', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-02-02', + ), + 'CacheClusterId' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'MaxRecords' => array( + 'type' => 'numeric', + 'location' => 'aws.query', + ), + 'Marker' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'ShowCacheNodeInfo' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The requested cache cluster ID does not refer to an existing cache cluster.', + 'class' => 'CacheClusterNotFoundException', + ), + array( + 'reason' => 'The value for a parameter is invalid.', + 'class' => 'InvalidParameterValueException', + ), + array( + 'reason' => 'Two or more incompatible parameters were specified.', + 'class' => 'InvalidParameterCombinationException', + ), + ), + ), + 'DescribeCacheEngineVersions' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'CacheEngineVersionMessage', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DescribeCacheEngineVersions', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-02-02', + ), + 'Engine' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'EngineVersion' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'CacheParameterGroupFamily' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'MaxRecords' => array( + 'type' => 'numeric', + 'location' => 'aws.query', + ), + 'Marker' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'DefaultOnly' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + ), + ), + 'DescribeCacheParameterGroups' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'CacheParameterGroupsMessage', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DescribeCacheParameterGroups', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-02-02', + ), + 'CacheParameterGroupName' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'MaxRecords' => array( + 'type' => 'numeric', + 'location' => 'aws.query', + ), + 'Marker' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The requested cache parameter group name does not refer to an existing cache parameter group.', + 'class' => 'CacheParameterGroupNotFoundException', + ), + array( + 'reason' => 'The value for a parameter is invalid.', + 'class' => 'InvalidParameterValueException', + ), + array( + 'reason' => 'Two or more incompatible parameters were specified.', + 'class' => 'InvalidParameterCombinationException', + ), + ), + ), + 'DescribeCacheParameters' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'CacheParameterGroupDetails', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DescribeCacheParameters', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-02-02', + ), + 'CacheParameterGroupName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'Source' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'MaxRecords' => array( + 'type' => 'numeric', + 'location' => 'aws.query', + ), + 'Marker' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The requested cache parameter group name does not refer to an existing cache parameter group.', + 'class' => 'CacheParameterGroupNotFoundException', + ), + array( + 'reason' => 'The value for a parameter is invalid.', + 'class' => 'InvalidParameterValueException', + ), + array( + 'reason' => 'Two or more incompatible parameters were specified.', + 'class' => 'InvalidParameterCombinationException', + ), + ), + ), + 'DescribeCacheSecurityGroups' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'CacheSecurityGroupMessage', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DescribeCacheSecurityGroups', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-02-02', + ), + 'CacheSecurityGroupName' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'MaxRecords' => array( + 'type' => 'numeric', + 'location' => 'aws.query', + ), + 'Marker' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The requested cache security group name does not refer to an existing cache security group.', + 'class' => 'CacheSecurityGroupNotFoundException', + ), + array( + 'reason' => 'The value for a parameter is invalid.', + 'class' => 'InvalidParameterValueException', + ), + array( + 'reason' => 'Two or more incompatible parameters were specified.', + 'class' => 'InvalidParameterCombinationException', + ), + ), + ), + 'DescribeCacheSubnetGroups' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'CacheSubnetGroupMessage', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DescribeCacheSubnetGroups', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-02-02', + ), + 'CacheSubnetGroupName' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'MaxRecords' => array( + 'type' => 'numeric', + 'location' => 'aws.query', + ), + 'Marker' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The requested cache subnet group name does not refer to an existing cache subnet group.', + 'class' => 'CacheSubnetGroupNotFoundException', + ), + ), + ), + 'DescribeEngineDefaultParameters' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'EngineDefaultsWrapper', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DescribeEngineDefaultParameters', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-02-02', + ), + 'CacheParameterGroupFamily' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'MaxRecords' => array( + 'type' => 'numeric', + 'location' => 'aws.query', + ), + 'Marker' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The value for a parameter is invalid.', + 'class' => 'InvalidParameterValueException', + ), + array( + 'reason' => 'Two or more incompatible parameters were specified.', + 'class' => 'InvalidParameterCombinationException', + ), + ), + ), + 'DescribeEvents' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'EventsMessage', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DescribeEvents', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-02-02', + ), + 'SourceIdentifier' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'SourceType' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'StartTime' => array( + 'type' => array( + 'object', + 'string', + 'integer', + ), + 'format' => 'date-time', + 'location' => 'aws.query', + ), + 'EndTime' => array( + 'type' => array( + 'object', + 'string', + 'integer', + ), + 'format' => 'date-time', + 'location' => 'aws.query', + ), + 'Duration' => array( + 'type' => 'numeric', + 'location' => 'aws.query', + ), + 'MaxRecords' => array( + 'type' => 'numeric', + 'location' => 'aws.query', + ), + 'Marker' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The value for a parameter is invalid.', + 'class' => 'InvalidParameterValueException', + ), + array( + 'reason' => 'Two or more incompatible parameters were specified.', + 'class' => 'InvalidParameterCombinationException', + ), + ), + ), + 'DescribeReplicationGroups' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'ReplicationGroupMessage', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DescribeReplicationGroups', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-02-02', + ), + 'ReplicationGroupId' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'MaxRecords' => array( + 'type' => 'numeric', + 'location' => 'aws.query', + ), + 'Marker' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The specified replication group does not exist.', + 'class' => 'ReplicationGroupNotFoundException', + ), + array( + 'reason' => 'The value for a parameter is invalid.', + 'class' => 'InvalidParameterValueException', + ), + array( + 'reason' => 'Two or more incompatible parameters were specified.', + 'class' => 'InvalidParameterCombinationException', + ), + ), + ), + 'DescribeReservedCacheNodes' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'ReservedCacheNodeMessage', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DescribeReservedCacheNodes', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-02-02', + ), + 'ReservedCacheNodeId' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'ReservedCacheNodesOfferingId' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'CacheNodeType' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'Duration' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'ProductDescription' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'OfferingType' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'MaxRecords' => array( + 'type' => 'numeric', + 'location' => 'aws.query', + ), + 'Marker' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The requested reserved cache node was not found.', + 'class' => 'ReservedCacheNodeNotFoundException', + ), + array( + 'reason' => 'The value for a parameter is invalid.', + 'class' => 'InvalidParameterValueException', + ), + array( + 'reason' => 'Two or more incompatible parameters were specified.', + 'class' => 'InvalidParameterCombinationException', + ), + ), + ), + 'DescribeReservedCacheNodesOfferings' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'ReservedCacheNodesOfferingMessage', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DescribeReservedCacheNodesOfferings', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-02-02', + ), + 'ReservedCacheNodesOfferingId' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'CacheNodeType' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'Duration' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'ProductDescription' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'OfferingType' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'MaxRecords' => array( + 'type' => 'numeric', + 'location' => 'aws.query', + ), + 'Marker' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The requested cache node offering does not exist.', + 'class' => 'ReservedCacheNodesOfferingNotFoundException', + ), + array( + 'reason' => 'The value for a parameter is invalid.', + 'class' => 'InvalidParameterValueException', + ), + array( + 'reason' => 'Two or more incompatible parameters were specified.', + 'class' => 'InvalidParameterCombinationException', + ), + ), + ), + 'DescribeSnapshots' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'DescribeSnapshotsListMessage', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DescribeSnapshots', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-02-02', + ), + 'CacheClusterId' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'SnapshotName' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'SnapshotSource' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'Marker' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'MaxRecords' => array( + 'type' => 'numeric', + 'location' => 'aws.query', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The requested cache cluster ID does not refer to an existing cache cluster.', + 'class' => 'CacheClusterNotFoundException', + ), + array( + 'reason' => 'The requested snapshot name does not refer to an existing snapshot.', + 'class' => 'SnapshotNotFoundException', + ), + array( + 'reason' => 'The value for a parameter is invalid.', + 'class' => 'InvalidParameterValueException', + ), + array( + 'reason' => 'Two or more incompatible parameters were specified.', + 'class' => 'InvalidParameterCombinationException', + ), + ), + ), + 'ListTagsForResource' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'TagListMessage', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'ListTagsForResource', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-02-02', + ), + 'ResourceName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The requested cache cluster ID does not refer to an existing cache cluster.', + 'class' => 'CacheClusterNotFoundException', + ), + array( + 'reason' => 'The requested snapshot name does not refer to an existing snapshot.', + 'class' => 'SnapshotNotFoundException', + ), + array( + 'reason' => 'The requested Amazon Resource Name (ARN) does not refer to an existing resource.', + 'class' => 'InvalidARNException', + ), + ), + ), + 'ModifyCacheCluster' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'CacheClusterWrapper', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'ModifyCacheCluster', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-02-02', + ), + 'CacheClusterId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'NumCacheNodes' => array( + 'type' => 'numeric', + 'location' => 'aws.query', + ), + 'CacheNodeIdsToRemove' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'CacheNodeIdsToRemove.member', + 'items' => array( + 'name' => 'CacheNodeId', + 'type' => 'string', + ), + ), + 'AZMode' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'NewAvailabilityZones' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'NewAvailabilityZones.member', + 'items' => array( + 'name' => 'PreferredAvailabilityZone', + 'type' => 'string', + ), + ), + 'CacheSecurityGroupNames' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'CacheSecurityGroupNames.member', + 'items' => array( + 'name' => 'CacheSecurityGroupName', + 'type' => 'string', + ), + ), + 'SecurityGroupIds' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'SecurityGroupIds.member', + 'items' => array( + 'name' => 'SecurityGroupId', + 'type' => 'string', + ), + ), + 'PreferredMaintenanceWindow' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'NotificationTopicArn' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'CacheParameterGroupName' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'NotificationTopicStatus' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'ApplyImmediately' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'EngineVersion' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'AutoMinorVersionUpgrade' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'SnapshotRetentionLimit' => array( + 'type' => 'numeric', + 'location' => 'aws.query', + ), + 'SnapshotWindow' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The requested cache cluster is not in the available state.', + 'class' => 'InvalidCacheClusterStateException', + ), + array( + 'reason' => 'The current state of the cache security group does not allow deletion.', + 'class' => 'InvalidCacheSecurityGroupStateException', + ), + array( + 'reason' => 'The requested cache node type is not available in the specified Availability Zone.', + 'class' => 'InsufficientCacheClusterCapacityException', + ), + array( + 'reason' => 'The requested cache cluster ID does not refer to an existing cache cluster.', + 'class' => 'CacheClusterNotFoundException', + ), + array( + 'reason' => 'The request cannot be processed because it would exceed the allowed number of cache nodes in a single cache cluster.', + 'class' => 'NodeQuotaForClusterExceededException', + ), + array( + 'reason' => 'The request cannot be processed because it would exceed the allowed number of cache nodes per customer.', + 'class' => 'NodeQuotaForCustomerExceededException', + ), + array( + 'reason' => 'The requested cache security group name does not refer to an existing cache security group.', + 'class' => 'CacheSecurityGroupNotFoundException', + ), + array( + 'reason' => 'The requested cache parameter group name does not refer to an existing cache parameter group.', + 'class' => 'CacheParameterGroupNotFoundException', + ), + array( + 'reason' => 'The VPC network is in an invalid state.', + 'class' => 'InvalidVPCNetworkStateException', + ), + array( + 'reason' => 'The value for a parameter is invalid.', + 'class' => 'InvalidParameterValueException', + ), + array( + 'reason' => 'Two or more incompatible parameters were specified.', + 'class' => 'InvalidParameterCombinationException', + ), + ), + ), + 'ModifyCacheParameterGroup' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'CacheParameterGroupNameMessage', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'ModifyCacheParameterGroup', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-02-02', + ), + 'CacheParameterGroupName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'ParameterNameValues' => array( + 'required' => true, + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'ParameterNameValues.member', + 'items' => array( + 'name' => 'ParameterNameValue', + 'type' => 'object', + 'properties' => array( + 'ParameterName' => array( + 'type' => 'string', + ), + 'ParameterValue' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The requested cache parameter group name does not refer to an existing cache parameter group.', + 'class' => 'CacheParameterGroupNotFoundException', + ), + array( + 'reason' => 'The current state of the cache parameter group does not allow the requested action to occur.', + 'class' => 'InvalidCacheParameterGroupStateException', + ), + array( + 'reason' => 'The value for a parameter is invalid.', + 'class' => 'InvalidParameterValueException', + ), + array( + 'reason' => 'Two or more incompatible parameters were specified.', + 'class' => 'InvalidParameterCombinationException', + ), + ), + ), + 'ModifyCacheSubnetGroup' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'CacheSubnetGroupWrapper', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'ModifyCacheSubnetGroup', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-02-02', + ), + 'CacheSubnetGroupName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'CacheSubnetGroupDescription' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'SubnetIds' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'SubnetIds.member', + 'items' => array( + 'name' => 'SubnetIdentifier', + 'type' => 'string', + ), + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The requested cache subnet group name does not refer to an existing cache subnet group.', + 'class' => 'CacheSubnetGroupNotFoundException', + ), + array( + 'reason' => 'The request cannot be processed because it would exceed the allowed number of subnets in a cache subnet group.', + 'class' => 'CacheSubnetQuotaExceededException', + ), + array( + 'reason' => 'The requested subnet is being used by another cache subnet group.', + 'class' => 'SubnetInUseException', + ), + array( + 'reason' => 'An invalid subnet identifier was specified.', + 'class' => 'InvalidSubnetException', + ), + ), + ), + 'ModifyReplicationGroup' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'ReplicationGroupWrapper', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'ModifyReplicationGroup', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-02-02', + ), + 'ReplicationGroupId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'ReplicationGroupDescription' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'PrimaryClusterId' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'SnapshottingClusterId' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'AutomaticFailoverEnabled' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'CacheSecurityGroupNames' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'CacheSecurityGroupNames.member', + 'items' => array( + 'name' => 'CacheSecurityGroupName', + 'type' => 'string', + ), + ), + 'SecurityGroupIds' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'SecurityGroupIds.member', + 'items' => array( + 'name' => 'SecurityGroupId', + 'type' => 'string', + ), + ), + 'PreferredMaintenanceWindow' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'NotificationTopicArn' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'CacheParameterGroupName' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'NotificationTopicStatus' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'ApplyImmediately' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'EngineVersion' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'AutoMinorVersionUpgrade' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'SnapshotRetentionLimit' => array( + 'type' => 'numeric', + 'location' => 'aws.query', + ), + 'SnapshotWindow' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The specified replication group does not exist.', + 'class' => 'ReplicationGroupNotFoundException', + ), + array( + 'reason' => 'The requested replication group is not in the available state.', + 'class' => 'InvalidReplicationGroupStateException', + ), + array( + 'reason' => 'The requested cache cluster is not in the available state.', + 'class' => 'InvalidCacheClusterStateException', + ), + array( + 'reason' => 'The current state of the cache security group does not allow deletion.', + 'class' => 'InvalidCacheSecurityGroupStateException', + ), + array( + 'reason' => 'The requested cache node type is not available in the specified Availability Zone.', + 'class' => 'InsufficientCacheClusterCapacityException', + ), + array( + 'reason' => 'The requested cache cluster ID does not refer to an existing cache cluster.', + 'class' => 'CacheClusterNotFoundException', + ), + array( + 'reason' => 'The request cannot be processed because it would exceed the allowed number of cache nodes in a single cache cluster.', + 'class' => 'NodeQuotaForClusterExceededException', + ), + array( + 'reason' => 'The request cannot be processed because it would exceed the allowed number of cache nodes per customer.', + 'class' => 'NodeQuotaForCustomerExceededException', + ), + array( + 'reason' => 'The requested cache security group name does not refer to an existing cache security group.', + 'class' => 'CacheSecurityGroupNotFoundException', + ), + array( + 'reason' => 'The requested cache parameter group name does not refer to an existing cache parameter group.', + 'class' => 'CacheParameterGroupNotFoundException', + ), + array( + 'reason' => 'The VPC network is in an invalid state.', + 'class' => 'InvalidVPCNetworkStateException', + ), + array( + 'reason' => 'The value for a parameter is invalid.', + 'class' => 'InvalidParameterValueException', + ), + array( + 'reason' => 'Two or more incompatible parameters were specified.', + 'class' => 'InvalidParameterCombinationException', + ), + ), + ), + 'PurchaseReservedCacheNodesOffering' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'ReservedCacheNodeWrapper', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'PurchaseReservedCacheNodesOffering', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-02-02', + ), + 'ReservedCacheNodesOfferingId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'ReservedCacheNodeId' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'CacheNodeCount' => array( + 'type' => 'numeric', + 'location' => 'aws.query', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The requested cache node offering does not exist.', + 'class' => 'ReservedCacheNodesOfferingNotFoundException', + ), + array( + 'reason' => 'You already have a reservation with the given identifier.', + 'class' => 'ReservedCacheNodeAlreadyExistsException', + ), + array( + 'reason' => 'The request cannot be processed because it would exceed the user\'s cache node quota.', + 'class' => 'ReservedCacheNodeQuotaExceededException', + ), + array( + 'reason' => 'The value for a parameter is invalid.', + 'class' => 'InvalidParameterValueException', + ), + array( + 'reason' => 'Two or more incompatible parameters were specified.', + 'class' => 'InvalidParameterCombinationException', + ), + ), + ), + 'RebootCacheCluster' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'CacheClusterWrapper', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'RebootCacheCluster', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-02-02', + ), + 'CacheClusterId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'CacheNodeIdsToReboot' => array( + 'required' => true, + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'CacheNodeIdsToReboot.member', + 'items' => array( + 'name' => 'CacheNodeId', + 'type' => 'string', + ), + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The requested cache cluster is not in the available state.', + 'class' => 'InvalidCacheClusterStateException', + ), + array( + 'reason' => 'The requested cache cluster ID does not refer to an existing cache cluster.', + 'class' => 'CacheClusterNotFoundException', + ), + ), + ), + 'RemoveTagsFromResource' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'TagListMessage', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'RemoveTagsFromResource', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-02-02', + ), + 'ResourceName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'TagKeys' => array( + 'required' => true, + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'TagKeys.member', + 'items' => array( + 'name' => 'String', + 'type' => 'string', + ), + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The requested cache cluster ID does not refer to an existing cache cluster.', + 'class' => 'CacheClusterNotFoundException', + ), + array( + 'reason' => 'The requested snapshot name does not refer to an existing snapshot.', + 'class' => 'SnapshotNotFoundException', + ), + array( + 'reason' => 'The requested Amazon Resource Name (ARN) does not refer to an existing resource.', + 'class' => 'InvalidARNException', + ), + array( + 'reason' => 'The requested tag was not found on this resource.', + 'class' => 'TagNotFoundException', + ), + ), + ), + 'ResetCacheParameterGroup' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'CacheParameterGroupNameMessage', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'ResetCacheParameterGroup', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-02-02', + ), + 'CacheParameterGroupName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'ResetAllParameters' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'ParameterNameValues' => array( + 'required' => true, + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'ParameterNameValues.member', + 'items' => array( + 'name' => 'ParameterNameValue', + 'type' => 'object', + 'properties' => array( + 'ParameterName' => array( + 'type' => 'string', + ), + 'ParameterValue' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The current state of the cache parameter group does not allow the requested action to occur.', + 'class' => 'InvalidCacheParameterGroupStateException', + ), + array( + 'reason' => 'The requested cache parameter group name does not refer to an existing cache parameter group.', + 'class' => 'CacheParameterGroupNotFoundException', + ), + array( + 'reason' => 'The value for a parameter is invalid.', + 'class' => 'InvalidParameterValueException', + ), + array( + 'reason' => 'Two or more incompatible parameters were specified.', + 'class' => 'InvalidParameterCombinationException', + ), + ), + ), + 'RevokeCacheSecurityGroupIngress' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'CacheSecurityGroupWrapper', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'RevokeCacheSecurityGroupIngress', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2015-02-02', + ), + 'CacheSecurityGroupName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'EC2SecurityGroupName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'EC2SecurityGroupOwnerId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The requested cache security group name does not refer to an existing cache security group.', + 'class' => 'CacheSecurityGroupNotFoundException', + ), + array( + 'reason' => 'The specified Amazon EC2 security group is not authorized for the specified cache security group.', + 'class' => 'AuthorizationNotFoundException', + ), + array( + 'reason' => 'The current state of the cache security group does not allow deletion.', + 'class' => 'InvalidCacheSecurityGroupStateException', + ), + array( + 'reason' => 'The value for a parameter is invalid.', + 'class' => 'InvalidParameterValueException', + ), + array( + 'reason' => 'Two or more incompatible parameters were specified.', + 'class' => 'InvalidParameterCombinationException', + ), + ), + ), + ), + 'models' => array( + 'TagListMessage' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'TagList' => array( + 'type' => 'array', + 'location' => 'xml', + 'items' => array( + 'name' => 'Tag', + 'type' => 'object', + 'sentAs' => 'Tag', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + ), + 'Value' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + 'CacheSecurityGroupWrapper' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'CacheSecurityGroup' => array( + 'type' => 'object', + 'location' => 'xml', + 'data' => array( + 'wrapper' => true, + ), + 'properties' => array( + 'OwnerId' => array( + 'type' => 'string', + ), + 'CacheSecurityGroupName' => array( + 'type' => 'string', + ), + 'Description' => array( + 'type' => 'string', + ), + 'EC2SecurityGroups' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'EC2SecurityGroup', + 'type' => 'object', + 'sentAs' => 'EC2SecurityGroup', + 'properties' => array( + 'Status' => array( + 'type' => 'string', + ), + 'EC2SecurityGroupName' => array( + 'type' => 'string', + ), + 'EC2SecurityGroupOwnerId' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + ), + ), + 'SnapshotWrapper' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'Snapshot' => array( + 'type' => 'object', + 'location' => 'xml', + 'data' => array( + 'wrapper' => true, + ), + 'properties' => array( + 'SnapshotName' => array( + 'type' => 'string', + ), + 'CacheClusterId' => array( + 'type' => 'string', + ), + 'SnapshotStatus' => array( + 'type' => 'string', + ), + 'SnapshotSource' => array( + 'type' => 'string', + ), + 'CacheNodeType' => array( + 'type' => 'string', + ), + 'Engine' => array( + 'type' => 'string', + ), + 'EngineVersion' => array( + 'type' => 'string', + ), + 'NumCacheNodes' => array( + 'type' => 'numeric', + ), + 'PreferredAvailabilityZone' => array( + 'type' => 'string', + ), + 'CacheClusterCreateTime' => array( + 'type' => 'string', + ), + 'PreferredMaintenanceWindow' => array( + 'type' => 'string', + ), + 'TopicArn' => array( + 'type' => 'string', + ), + 'Port' => array( + 'type' => 'numeric', + ), + 'CacheParameterGroupName' => array( + 'type' => 'string', + ), + 'CacheSubnetGroupName' => array( + 'type' => 'string', + ), + 'VpcId' => array( + 'type' => 'string', + ), + 'AutoMinorVersionUpgrade' => array( + 'type' => 'boolean', + ), + 'SnapshotRetentionLimit' => array( + 'type' => 'numeric', + ), + 'SnapshotWindow' => array( + 'type' => 'string', + ), + 'NodeSnapshots' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'NodeSnapshot', + 'type' => 'object', + 'sentAs' => 'NodeSnapshot', + 'properties' => array( + 'CacheNodeId' => array( + 'type' => 'string', + ), + 'CacheSize' => array( + 'type' => 'string', + ), + 'CacheNodeCreateTime' => array( + 'type' => 'string', + ), + 'SnapshotCreateTime' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + ), + ), + 'CacheClusterWrapper' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'CacheCluster' => array( + 'type' => 'object', + 'location' => 'xml', + 'data' => array( + 'wrapper' => true, + ), + 'properties' => array( + 'CacheClusterId' => array( + 'type' => 'string', + ), + 'ConfigurationEndpoint' => array( + 'type' => 'object', + 'properties' => array( + 'Address' => array( + 'type' => 'string', + ), + 'Port' => array( + 'type' => 'numeric', + ), + ), + ), + 'ClientDownloadLandingPage' => array( + 'type' => 'string', + ), + 'CacheNodeType' => array( + 'type' => 'string', + ), + 'Engine' => array( + 'type' => 'string', + ), + 'EngineVersion' => array( + 'type' => 'string', + ), + 'CacheClusterStatus' => array( + 'type' => 'string', + ), + 'NumCacheNodes' => array( + 'type' => 'numeric', + ), + 'PreferredAvailabilityZone' => array( + 'type' => 'string', + ), + 'CacheClusterCreateTime' => array( + 'type' => 'string', + ), + 'PreferredMaintenanceWindow' => array( + 'type' => 'string', + ), + 'PendingModifiedValues' => array( + 'type' => 'object', + 'properties' => array( + 'NumCacheNodes' => array( + 'type' => 'numeric', + ), + 'CacheNodeIdsToRemove' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'CacheNodeId', + 'type' => 'string', + 'sentAs' => 'CacheNodeId', + ), + ), + 'EngineVersion' => array( + 'type' => 'string', + ), + ), + ), + 'NotificationConfiguration' => array( + 'type' => 'object', + 'properties' => array( + 'TopicArn' => array( + 'type' => 'string', + ), + 'TopicStatus' => array( + 'type' => 'string', + ), + ), + ), + 'CacheSecurityGroups' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'CacheSecurityGroup', + 'type' => 'object', + 'sentAs' => 'CacheSecurityGroup', + 'properties' => array( + 'CacheSecurityGroupName' => array( + 'type' => 'string', + ), + 'Status' => array( + 'type' => 'string', + ), + ), + ), + ), + 'CacheParameterGroup' => array( + 'type' => 'object', + 'properties' => array( + 'CacheParameterGroupName' => array( + 'type' => 'string', + ), + 'ParameterApplyStatus' => array( + 'type' => 'string', + ), + 'CacheNodeIdsToReboot' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'CacheNodeId', + 'type' => 'string', + 'sentAs' => 'CacheNodeId', + ), + ), + ), + ), + 'CacheSubnetGroupName' => array( + 'type' => 'string', + ), + 'CacheNodes' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'CacheNode', + 'type' => 'object', + 'sentAs' => 'CacheNode', + 'properties' => array( + 'CacheNodeId' => array( + 'type' => 'string', + ), + 'CacheNodeStatus' => array( + 'type' => 'string', + ), + 'CacheNodeCreateTime' => array( + 'type' => 'string', + ), + 'Endpoint' => array( + 'type' => 'object', + 'properties' => array( + 'Address' => array( + 'type' => 'string', + ), + 'Port' => array( + 'type' => 'numeric', + ), + ), + ), + 'ParameterGroupStatus' => array( + 'type' => 'string', + ), + 'SourceCacheNodeId' => array( + 'type' => 'string', + ), + 'CustomerAvailabilityZone' => array( + 'type' => 'string', + ), + ), + ), + ), + 'AutoMinorVersionUpgrade' => array( + 'type' => 'boolean', + ), + 'SecurityGroups' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'SecurityGroupMembership', + 'type' => 'object', + 'sentAs' => 'member', + 'properties' => array( + 'SecurityGroupId' => array( + 'type' => 'string', + ), + 'Status' => array( + 'type' => 'string', + ), + ), + ), + ), + 'ReplicationGroupId' => array( + 'type' => 'string', + ), + 'SnapshotRetentionLimit' => array( + 'type' => 'numeric', + ), + 'SnapshotWindow' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + 'CacheParameterGroupWrapper' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'CacheParameterGroup' => array( + 'type' => 'object', + 'location' => 'xml', + 'data' => array( + 'wrapper' => true, + ), + 'properties' => array( + 'CacheParameterGroupName' => array( + 'type' => 'string', + ), + 'CacheParameterGroupFamily' => array( + 'type' => 'string', + ), + 'Description' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + 'CacheSubnetGroupWrapper' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'CacheSubnetGroup' => array( + 'type' => 'object', + 'location' => 'xml', + 'data' => array( + 'wrapper' => true, + ), + 'properties' => array( + 'CacheSubnetGroupName' => array( + 'type' => 'string', + ), + 'CacheSubnetGroupDescription' => array( + 'type' => 'string', + ), + 'VpcId' => array( + 'type' => 'string', + ), + 'Subnets' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Subnet', + 'type' => 'object', + 'sentAs' => 'Subnet', + 'properties' => array( + 'SubnetIdentifier' => array( + 'type' => 'string', + ), + 'SubnetAvailabilityZone' => array( + 'type' => 'object', + 'properties' => array( + 'Name' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + ), + ), + ), + ), + 'ReplicationGroupWrapper' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'ReplicationGroup' => array( + 'type' => 'object', + 'location' => 'xml', + 'data' => array( + 'wrapper' => true, + ), + 'properties' => array( + 'ReplicationGroupId' => array( + 'type' => 'string', + ), + 'Description' => array( + 'type' => 'string', + ), + 'Status' => array( + 'type' => 'string', + ), + 'PendingModifiedValues' => array( + 'type' => 'object', + 'properties' => array( + 'PrimaryClusterId' => array( + 'type' => 'string', + ), + 'AutomaticFailoverStatus' => array( + 'type' => 'string', + ), + ), + ), + 'MemberClusters' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'ClusterId', + 'type' => 'string', + 'sentAs' => 'ClusterId', + ), + ), + 'NodeGroups' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'NodeGroup', + 'type' => 'object', + 'sentAs' => 'NodeGroup', + 'properties' => array( + 'NodeGroupId' => array( + 'type' => 'string', + ), + 'Status' => array( + 'type' => 'string', + ), + 'PrimaryEndpoint' => array( + 'type' => 'object', + 'properties' => array( + 'Address' => array( + 'type' => 'string', + ), + 'Port' => array( + 'type' => 'numeric', + ), + ), + ), + 'NodeGroupMembers' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'NodeGroupMember', + 'type' => 'object', + 'sentAs' => 'NodeGroupMember', + 'properties' => array( + 'CacheClusterId' => array( + 'type' => 'string', + ), + 'CacheNodeId' => array( + 'type' => 'string', + ), + 'ReadEndpoint' => array( + 'type' => 'object', + 'properties' => array( + 'Address' => array( + 'type' => 'string', + ), + 'Port' => array( + 'type' => 'numeric', + ), + ), + ), + 'PreferredAvailabilityZone' => array( + 'type' => 'string', + ), + 'CurrentRole' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + ), + 'SnapshottingClusterId' => array( + 'type' => 'string', + ), + 'AutomaticFailover' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + 'EmptyOutput' => array( + 'type' => 'object', + 'additionalProperties' => true, + ), + 'CacheClusterMessage' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'Marker' => array( + 'type' => 'string', + 'location' => 'xml', + ), + 'CacheClusters' => array( + 'type' => 'array', + 'location' => 'xml', + 'items' => array( + 'name' => 'CacheCluster', + 'type' => 'object', + 'sentAs' => 'CacheCluster', + 'properties' => array( + 'CacheClusterId' => array( + 'type' => 'string', + ), + 'ConfigurationEndpoint' => array( + 'type' => 'object', + 'properties' => array( + 'Address' => array( + 'type' => 'string', + ), + 'Port' => array( + 'type' => 'numeric', + ), + ), + ), + 'ClientDownloadLandingPage' => array( + 'type' => 'string', + ), + 'CacheNodeType' => array( + 'type' => 'string', + ), + 'Engine' => array( + 'type' => 'string', + ), + 'EngineVersion' => array( + 'type' => 'string', + ), + 'CacheClusterStatus' => array( + 'type' => 'string', + ), + 'NumCacheNodes' => array( + 'type' => 'numeric', + ), + 'PreferredAvailabilityZone' => array( + 'type' => 'string', + ), + 'CacheClusterCreateTime' => array( + 'type' => 'string', + ), + 'PreferredMaintenanceWindow' => array( + 'type' => 'string', + ), + 'PendingModifiedValues' => array( + 'type' => 'object', + 'properties' => array( + 'NumCacheNodes' => array( + 'type' => 'numeric', + ), + 'CacheNodeIdsToRemove' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'CacheNodeId', + 'type' => 'string', + 'sentAs' => 'CacheNodeId', + ), + ), + 'EngineVersion' => array( + 'type' => 'string', + ), + ), + ), + 'NotificationConfiguration' => array( + 'type' => 'object', + 'properties' => array( + 'TopicArn' => array( + 'type' => 'string', + ), + 'TopicStatus' => array( + 'type' => 'string', + ), + ), + ), + 'CacheSecurityGroups' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'CacheSecurityGroup', + 'type' => 'object', + 'sentAs' => 'CacheSecurityGroup', + 'properties' => array( + 'CacheSecurityGroupName' => array( + 'type' => 'string', + ), + 'Status' => array( + 'type' => 'string', + ), + ), + ), + ), + 'CacheParameterGroup' => array( + 'type' => 'object', + 'properties' => array( + 'CacheParameterGroupName' => array( + 'type' => 'string', + ), + 'ParameterApplyStatus' => array( + 'type' => 'string', + ), + 'CacheNodeIdsToReboot' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'CacheNodeId', + 'type' => 'string', + 'sentAs' => 'CacheNodeId', + ), + ), + ), + ), + 'CacheSubnetGroupName' => array( + 'type' => 'string', + ), + 'CacheNodes' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'CacheNode', + 'type' => 'object', + 'sentAs' => 'CacheNode', + 'properties' => array( + 'CacheNodeId' => array( + 'type' => 'string', + ), + 'CacheNodeStatus' => array( + 'type' => 'string', + ), + 'CacheNodeCreateTime' => array( + 'type' => 'string', + ), + 'Endpoint' => array( + 'type' => 'object', + 'properties' => array( + 'Address' => array( + 'type' => 'string', + ), + 'Port' => array( + 'type' => 'numeric', + ), + ), + ), + 'ParameterGroupStatus' => array( + 'type' => 'string', + ), + 'SourceCacheNodeId' => array( + 'type' => 'string', + ), + 'CustomerAvailabilityZone' => array( + 'type' => 'string', + ), + ), + ), + ), + 'AutoMinorVersionUpgrade' => array( + 'type' => 'boolean', + ), + 'SecurityGroups' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'SecurityGroupMembership', + 'type' => 'object', + 'sentAs' => 'member', + 'properties' => array( + 'SecurityGroupId' => array( + 'type' => 'string', + ), + 'Status' => array( + 'type' => 'string', + ), + ), + ), + ), + 'ReplicationGroupId' => array( + 'type' => 'string', + ), + 'SnapshotRetentionLimit' => array( + 'type' => 'numeric', + ), + 'SnapshotWindow' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + 'CacheEngineVersionMessage' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'Marker' => array( + 'type' => 'string', + 'location' => 'xml', + ), + 'CacheEngineVersions' => array( + 'type' => 'array', + 'location' => 'xml', + 'items' => array( + 'name' => 'CacheEngineVersion', + 'type' => 'object', + 'sentAs' => 'CacheEngineVersion', + 'properties' => array( + 'Engine' => array( + 'type' => 'string', + ), + 'EngineVersion' => array( + 'type' => 'string', + ), + 'CacheParameterGroupFamily' => array( + 'type' => 'string', + ), + 'CacheEngineDescription' => array( + 'type' => 'string', + ), + 'CacheEngineVersionDescription' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + 'CacheParameterGroupsMessage' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'Marker' => array( + 'type' => 'string', + 'location' => 'xml', + ), + 'CacheParameterGroups' => array( + 'type' => 'array', + 'location' => 'xml', + 'items' => array( + 'name' => 'CacheParameterGroup', + 'type' => 'object', + 'sentAs' => 'CacheParameterGroup', + 'properties' => array( + 'CacheParameterGroupName' => array( + 'type' => 'string', + ), + 'CacheParameterGroupFamily' => array( + 'type' => 'string', + ), + 'Description' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + 'CacheParameterGroupDetails' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'Marker' => array( + 'type' => 'string', + 'location' => 'xml', + ), + 'Parameters' => array( + 'type' => 'array', + 'location' => 'xml', + 'items' => array( + 'name' => 'Parameter', + 'type' => 'object', + 'sentAs' => 'Parameter', + 'properties' => array( + 'ParameterName' => array( + 'type' => 'string', + ), + 'ParameterValue' => array( + 'type' => 'string', + ), + 'Description' => array( + 'type' => 'string', + ), + 'Source' => array( + 'type' => 'string', + ), + 'DataType' => array( + 'type' => 'string', + ), + 'AllowedValues' => array( + 'type' => 'string', + ), + 'IsModifiable' => array( + 'type' => 'boolean', + ), + 'MinimumEngineVersion' => array( + 'type' => 'string', + ), + ), + ), + ), + 'CacheNodeTypeSpecificParameters' => array( + 'type' => 'array', + 'location' => 'xml', + 'items' => array( + 'name' => 'CacheNodeTypeSpecificParameter', + 'type' => 'object', + 'sentAs' => 'CacheNodeTypeSpecificParameter', + 'properties' => array( + 'ParameterName' => array( + 'type' => 'string', + ), + 'Description' => array( + 'type' => 'string', + ), + 'Source' => array( + 'type' => 'string', + ), + 'DataType' => array( + 'type' => 'string', + ), + 'AllowedValues' => array( + 'type' => 'string', + ), + 'IsModifiable' => array( + 'type' => 'boolean', + ), + 'MinimumEngineVersion' => array( + 'type' => 'string', + ), + 'CacheNodeTypeSpecificValues' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'CacheNodeTypeSpecificValue', + 'type' => 'object', + 'sentAs' => 'CacheNodeTypeSpecificValue', + 'properties' => array( + 'CacheNodeType' => array( + 'type' => 'string', + ), + 'Value' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + ), + ), + ), + 'CacheSecurityGroupMessage' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'Marker' => array( + 'type' => 'string', + 'location' => 'xml', + ), + 'CacheSecurityGroups' => array( + 'type' => 'array', + 'location' => 'xml', + 'items' => array( + 'name' => 'CacheSecurityGroup', + 'type' => 'object', + 'sentAs' => 'CacheSecurityGroup', + 'properties' => array( + 'OwnerId' => array( + 'type' => 'string', + ), + 'CacheSecurityGroupName' => array( + 'type' => 'string', + ), + 'Description' => array( + 'type' => 'string', + ), + 'EC2SecurityGroups' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'EC2SecurityGroup', + 'type' => 'object', + 'sentAs' => 'EC2SecurityGroup', + 'properties' => array( + 'Status' => array( + 'type' => 'string', + ), + 'EC2SecurityGroupName' => array( + 'type' => 'string', + ), + 'EC2SecurityGroupOwnerId' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + ), + ), + ), + 'CacheSubnetGroupMessage' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'Marker' => array( + 'type' => 'string', + 'location' => 'xml', + ), + 'CacheSubnetGroups' => array( + 'type' => 'array', + 'location' => 'xml', + 'items' => array( + 'name' => 'CacheSubnetGroup', + 'type' => 'object', + 'sentAs' => 'CacheSubnetGroup', + 'properties' => array( + 'CacheSubnetGroupName' => array( + 'type' => 'string', + ), + 'CacheSubnetGroupDescription' => array( + 'type' => 'string', + ), + 'VpcId' => array( + 'type' => 'string', + ), + 'Subnets' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Subnet', + 'type' => 'object', + 'sentAs' => 'Subnet', + 'properties' => array( + 'SubnetIdentifier' => array( + 'type' => 'string', + ), + 'SubnetAvailabilityZone' => array( + 'type' => 'object', + 'properties' => array( + 'Name' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + ), + ), + ), + ), + ), + 'EngineDefaultsWrapper' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'EngineDefaults' => array( + 'type' => 'object', + 'location' => 'xml', + 'data' => array( + 'wrapper' => true, + ), + 'properties' => array( + 'CacheParameterGroupFamily' => array( + 'type' => 'string', + ), + 'Marker' => array( + 'type' => 'string', + ), + 'Parameters' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Parameter', + 'type' => 'object', + 'sentAs' => 'Parameter', + 'properties' => array( + 'ParameterName' => array( + 'type' => 'string', + ), + 'ParameterValue' => array( + 'type' => 'string', + ), + 'Description' => array( + 'type' => 'string', + ), + 'Source' => array( + 'type' => 'string', + ), + 'DataType' => array( + 'type' => 'string', + ), + 'AllowedValues' => array( + 'type' => 'string', + ), + 'IsModifiable' => array( + 'type' => 'boolean', + ), + 'MinimumEngineVersion' => array( + 'type' => 'string', + ), + ), + ), + ), + 'CacheNodeTypeSpecificParameters' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'CacheNodeTypeSpecificParameter', + 'type' => 'object', + 'sentAs' => 'CacheNodeTypeSpecificParameter', + 'properties' => array( + 'ParameterName' => array( + 'type' => 'string', + ), + 'Description' => array( + 'type' => 'string', + ), + 'Source' => array( + 'type' => 'string', + ), + 'DataType' => array( + 'type' => 'string', + ), + 'AllowedValues' => array( + 'type' => 'string', + ), + 'IsModifiable' => array( + 'type' => 'boolean', + ), + 'MinimumEngineVersion' => array( + 'type' => 'string', + ), + 'CacheNodeTypeSpecificValues' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'CacheNodeTypeSpecificValue', + 'type' => 'object', + 'sentAs' => 'CacheNodeTypeSpecificValue', + 'properties' => array( + 'CacheNodeType' => array( + 'type' => 'string', + ), + 'Value' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + ), + ), + ), + ), + ), + 'EventsMessage' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'Marker' => array( + 'type' => 'string', + 'location' => 'xml', + ), + 'Events' => array( + 'type' => 'array', + 'location' => 'xml', + 'items' => array( + 'name' => 'Event', + 'type' => 'object', + 'sentAs' => 'Event', + 'properties' => array( + 'SourceIdentifier' => array( + 'type' => 'string', + ), + 'SourceType' => array( + 'type' => 'string', + ), + 'Message' => array( + 'type' => 'string', + ), + 'Date' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + 'ReplicationGroupMessage' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'Marker' => array( + 'type' => 'string', + 'location' => 'xml', + ), + 'ReplicationGroups' => array( + 'type' => 'array', + 'location' => 'xml', + 'items' => array( + 'name' => 'ReplicationGroup', + 'type' => 'object', + 'sentAs' => 'ReplicationGroup', + 'properties' => array( + 'ReplicationGroupId' => array( + 'type' => 'string', + ), + 'Description' => array( + 'type' => 'string', + ), + 'Status' => array( + 'type' => 'string', + ), + 'PendingModifiedValues' => array( + 'type' => 'object', + 'properties' => array( + 'PrimaryClusterId' => array( + 'type' => 'string', + ), + 'AutomaticFailoverStatus' => array( + 'type' => 'string', + ), + ), + ), + 'MemberClusters' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'ClusterId', + 'type' => 'string', + 'sentAs' => 'ClusterId', + ), + ), + 'NodeGroups' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'NodeGroup', + 'type' => 'object', + 'sentAs' => 'NodeGroup', + 'properties' => array( + 'NodeGroupId' => array( + 'type' => 'string', + ), + 'Status' => array( + 'type' => 'string', + ), + 'PrimaryEndpoint' => array( + 'type' => 'object', + 'properties' => array( + 'Address' => array( + 'type' => 'string', + ), + 'Port' => array( + 'type' => 'numeric', + ), + ), + ), + 'NodeGroupMembers' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'NodeGroupMember', + 'type' => 'object', + 'sentAs' => 'NodeGroupMember', + 'properties' => array( + 'CacheClusterId' => array( + 'type' => 'string', + ), + 'CacheNodeId' => array( + 'type' => 'string', + ), + 'ReadEndpoint' => array( + 'type' => 'object', + 'properties' => array( + 'Address' => array( + 'type' => 'string', + ), + 'Port' => array( + 'type' => 'numeric', + ), + ), + ), + 'PreferredAvailabilityZone' => array( + 'type' => 'string', + ), + 'CurrentRole' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + ), + 'SnapshottingClusterId' => array( + 'type' => 'string', + ), + 'AutomaticFailover' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + 'ReservedCacheNodeMessage' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'Marker' => array( + 'type' => 'string', + 'location' => 'xml', + ), + 'ReservedCacheNodes' => array( + 'type' => 'array', + 'location' => 'xml', + 'items' => array( + 'name' => 'ReservedCacheNode', + 'type' => 'object', + 'sentAs' => 'ReservedCacheNode', + 'properties' => array( + 'ReservedCacheNodeId' => array( + 'type' => 'string', + ), + 'ReservedCacheNodesOfferingId' => array( + 'type' => 'string', + ), + 'CacheNodeType' => array( + 'type' => 'string', + ), + 'StartTime' => array( + 'type' => 'string', + ), + 'Duration' => array( + 'type' => 'numeric', + ), + 'FixedPrice' => array( + 'type' => 'numeric', + ), + 'UsagePrice' => array( + 'type' => 'numeric', + ), + 'CacheNodeCount' => array( + 'type' => 'numeric', + ), + 'ProductDescription' => array( + 'type' => 'string', + ), + 'OfferingType' => array( + 'type' => 'string', + ), + 'State' => array( + 'type' => 'string', + ), + 'RecurringCharges' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'RecurringCharge', + 'type' => 'object', + 'sentAs' => 'RecurringCharge', + 'properties' => array( + 'RecurringChargeAmount' => array( + 'type' => 'numeric', + ), + 'RecurringChargeFrequency' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + ), + ), + ), + 'ReservedCacheNodesOfferingMessage' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'Marker' => array( + 'type' => 'string', + 'location' => 'xml', + ), + 'ReservedCacheNodesOfferings' => array( + 'type' => 'array', + 'location' => 'xml', + 'items' => array( + 'name' => 'ReservedCacheNodesOffering', + 'type' => 'object', + 'sentAs' => 'ReservedCacheNodesOffering', + 'properties' => array( + 'ReservedCacheNodesOfferingId' => array( + 'type' => 'string', + ), + 'CacheNodeType' => array( + 'type' => 'string', + ), + 'Duration' => array( + 'type' => 'numeric', + ), + 'FixedPrice' => array( + 'type' => 'numeric', + ), + 'UsagePrice' => array( + 'type' => 'numeric', + ), + 'ProductDescription' => array( + 'type' => 'string', + ), + 'OfferingType' => array( + 'type' => 'string', + ), + 'RecurringCharges' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'RecurringCharge', + 'type' => 'object', + 'sentAs' => 'RecurringCharge', + 'properties' => array( + 'RecurringChargeAmount' => array( + 'type' => 'numeric', + ), + 'RecurringChargeFrequency' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + ), + ), + ), + 'DescribeSnapshotsListMessage' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'Marker' => array( + 'type' => 'string', + 'location' => 'xml', + ), + 'Snapshots' => array( + 'type' => 'array', + 'location' => 'xml', + 'items' => array( + 'name' => 'Snapshot', + 'type' => 'object', + 'sentAs' => 'Snapshot', + 'properties' => array( + 'SnapshotName' => array( + 'type' => 'string', + ), + 'CacheClusterId' => array( + 'type' => 'string', + ), + 'SnapshotStatus' => array( + 'type' => 'string', + ), + 'SnapshotSource' => array( + 'type' => 'string', + ), + 'CacheNodeType' => array( + 'type' => 'string', + ), + 'Engine' => array( + 'type' => 'string', + ), + 'EngineVersion' => array( + 'type' => 'string', + ), + 'NumCacheNodes' => array( + 'type' => 'numeric', + ), + 'PreferredAvailabilityZone' => array( + 'type' => 'string', + ), + 'CacheClusterCreateTime' => array( + 'type' => 'string', + ), + 'PreferredMaintenanceWindow' => array( + 'type' => 'string', + ), + 'TopicArn' => array( + 'type' => 'string', + ), + 'Port' => array( + 'type' => 'numeric', + ), + 'CacheParameterGroupName' => array( + 'type' => 'string', + ), + 'CacheSubnetGroupName' => array( + 'type' => 'string', + ), + 'VpcId' => array( + 'type' => 'string', + ), + 'AutoMinorVersionUpgrade' => array( + 'type' => 'boolean', + ), + 'SnapshotRetentionLimit' => array( + 'type' => 'numeric', + ), + 'SnapshotWindow' => array( + 'type' => 'string', + ), + 'NodeSnapshots' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'NodeSnapshot', + 'type' => 'object', + 'sentAs' => 'NodeSnapshot', + 'properties' => array( + 'CacheNodeId' => array( + 'type' => 'string', + ), + 'CacheSize' => array( + 'type' => 'string', + ), + 'CacheNodeCreateTime' => array( + 'type' => 'string', + ), + 'SnapshotCreateTime' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + ), + ), + ), + 'CacheParameterGroupNameMessage' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'CacheParameterGroupName' => array( + 'type' => 'string', + 'location' => 'xml', + ), + ), + ), + 'ReservedCacheNodeWrapper' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'ReservedCacheNode' => array( + 'type' => 'object', + 'location' => 'xml', + 'data' => array( + 'wrapper' => true, + ), + 'properties' => array( + 'ReservedCacheNodeId' => array( + 'type' => 'string', + ), + 'ReservedCacheNodesOfferingId' => array( + 'type' => 'string', + ), + 'CacheNodeType' => array( + 'type' => 'string', + ), + 'StartTime' => array( + 'type' => 'string', + ), + 'Duration' => array( + 'type' => 'numeric', + ), + 'FixedPrice' => array( + 'type' => 'numeric', + ), + 'UsagePrice' => array( + 'type' => 'numeric', + ), + 'CacheNodeCount' => array( + 'type' => 'numeric', + ), + 'ProductDescription' => array( + 'type' => 'string', + ), + 'OfferingType' => array( + 'type' => 'string', + ), + 'State' => array( + 'type' => 'string', + ), + 'RecurringCharges' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'RecurringCharge', + 'type' => 'object', + 'sentAs' => 'RecurringCharge', + 'properties' => array( + 'RecurringChargeAmount' => array( + 'type' => 'numeric', + ), + 'RecurringChargeFrequency' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + ), + ), + ), + 'iterators' => array( + 'DescribeCacheClusters' => array( + 'input_token' => 'Marker', + 'output_token' => 'Marker', + 'limit_key' => 'MaxRecords', + 'result_key' => 'CacheClusters', + ), + 'DescribeCacheEngineVersions' => array( + 'input_token' => 'Marker', + 'output_token' => 'Marker', + 'limit_key' => 'MaxRecords', + 'result_key' => 'CacheEngineVersions', + ), + 'DescribeCacheParameterGroups' => array( + 'input_token' => 'Marker', + 'output_token' => 'Marker', + 'limit_key' => 'MaxRecords', + 'result_key' => 'CacheParameterGroups', + ), + 'DescribeCacheParameters' => array( + 'input_token' => 'Marker', + 'output_token' => 'Marker', + 'limit_key' => 'MaxRecords', + 'result_key' => 'Parameters', + ), + 'DescribeCacheSecurityGroups' => array( + 'input_token' => 'Marker', + 'output_token' => 'Marker', + 'limit_key' => 'MaxRecords', + 'result_key' => 'CacheSecurityGroups', + ), + 'DescribeCacheSubnetGroups' => array( + 'input_token' => 'Marker', + 'output_token' => 'Marker', + 'limit_key' => 'MaxRecords', + 'result_key' => 'CacheSubnetGroups', + ), + 'DescribeEngineDefaultParameters' => array( + 'input_token' => 'Marker', + 'output_token' => 'Marker', + 'limit_key' => 'MaxRecords', + 'result_key' => 'Parameters', + ), + 'DescribeEvents' => array( + 'input_token' => 'Marker', + 'output_token' => 'Marker', + 'limit_key' => 'MaxRecords', + 'result_key' => 'Events', + ), + 'DescribeReservedCacheNodes' => array( + 'input_token' => 'Marker', + 'output_token' => 'Marker', + 'limit_key' => 'MaxRecords', + 'result_key' => 'ReservedCacheNodes', + ), + 'DescribeReservedCacheNodesOfferings' => array( + 'input_token' => 'Marker', + 'output_token' => 'Marker', + 'limit_key' => 'MaxRecords', + 'result_key' => 'ReservedCacheNodesOfferings', + ), + 'DescribeReplicationGroups' => array( + 'input_token' => 'Marker', + 'output_token' => 'Marker', + 'limit_key' => 'MaxRecords', + 'result_key' => 'ReplicationGroups', + ), + 'DescribeSnapshots' => array( + 'input_token' => 'Marker', + 'output_token' => 'Marker', + 'limit_key' => 'MaxRecords', + 'result_key' => 'Snapshots', + ), + ), +); diff --git a/inc/aws-sdk/Aws/ElasticBeanstalk/ElasticBeanstalkClient.php b/inc/aws-sdk/Aws/ElasticBeanstalk/ElasticBeanstalkClient.php index aa2c2cb..11845d1 100755 --- a/inc/aws-sdk/Aws/ElasticBeanstalk/ElasticBeanstalkClient.php +++ b/inc/aws-sdk/Aws/ElasticBeanstalk/ElasticBeanstalkClient.php @@ -26,6 +26,7 @@ use Guzzle\Service\Resource\ResourceIteratorInterface; /** * Client to interact with AWS Elastic Beanstalk * + * @method Model abortEnvironmentUpdate(array $args = array()) {@command ElasticBeanstalk AbortEnvironmentUpdate} * @method Model checkDNSAvailability(array $args = array()) {@command ElasticBeanstalk CheckDNSAvailability} * @method Model createApplication(array $args = array()) {@command ElasticBeanstalk CreateApplication} * @method Model createApplicationVersion(array $args = array()) {@command ElasticBeanstalk CreateApplicationVersion} @@ -55,8 +56,8 @@ use Guzzle\Service\Resource\ResourceIteratorInterface; * @method Model updateConfigurationTemplate(array $args = array()) {@command ElasticBeanstalk UpdateConfigurationTemplate} * @method Model updateEnvironment(array $args = array()) {@command ElasticBeanstalk UpdateEnvironment} * @method Model validateConfigurationSettings(array $args = array()) {@command ElasticBeanstalk ValidateConfigurationSettings} - * @method waitUntilEnvironmentReady(array $input) Wait using the EnvironmentReady waiter. The input array uses the parameters of the DescribeEnvironments operation and waiter specific settings - * @method waitUntilEnvironmentTerminated(array $input) Wait using the EnvironmentTerminated waiter. The input array uses the parameters of the DescribeEnvironments operation and waiter specific settings + * @method waitUntilEnvironmentReady(array $input) The input array uses the parameters of the DescribeEnvironments operation and waiter specific settings + * @method waitUntilEnvironmentTerminated(array $input) The input array uses the parameters of the DescribeEnvironments operation and waiter specific settings * @method ResourceIteratorInterface getDescribeApplicationVersionsIterator(array $args = array()) The input array uses the parameters of the DescribeApplicationVersions operation * @method ResourceIteratorInterface getDescribeApplicationsIterator(array $args = array()) The input array uses the parameters of the DescribeApplications operation * @method ResourceIteratorInterface getDescribeConfigurationOptionsIterator(array $args = array()) The input array uses the parameters of the DescribeConfigurationOptions operation @@ -64,8 +65,8 @@ use Guzzle\Service\Resource\ResourceIteratorInterface; * @method ResourceIteratorInterface getDescribeEventsIterator(array $args = array()) The input array uses the parameters of the DescribeEvents operation * @method ResourceIteratorInterface getListAvailableSolutionStacksIterator(array $args = array()) The input array uses the parameters of the ListAvailableSolutionStacks operation * - * @link http://docs.aws.amazon.com/aws-sdk-php/guide/latest/service-elasticbeanstalk.html User guide - * @link http://docs.aws.amazon.com/aws-sdk-php/latest/class-Aws.ElasticBeanstalk.ElasticBeanstalkClient.html API docs + * @link http://docs.aws.amazon.com/aws-sdk-php/v2/guide/service-elasticbeanstalk.html User guide + * @link http://docs.aws.amazon.com/aws-sdk-php/v2/api/class-Aws.ElasticBeanstalk.ElasticBeanstalkClient.html API docs */ class ElasticBeanstalkClient extends AbstractClient { @@ -77,7 +78,7 @@ class ElasticBeanstalkClient extends AbstractClient * @param array|Collection $config Client configuration data * * @return self - * @see \Aws\Common\Client\DefaultClient for a list of available configuration options + * @link http://docs.aws.amazon.com/aws-sdk-php/v2/guide/configuration.html#client-configuration-options */ public static function factory($config = array()) { diff --git a/inc/aws-sdk/Aws/ElasticBeanstalk/Resources/elasticbeanstalk-2010-12-01.php b/inc/aws-sdk/Aws/ElasticBeanstalk/Resources/elasticbeanstalk-2010-12-01.php index f35ae08..961feb2 100755 --- a/inc/aws-sdk/Aws/ElasticBeanstalk/Resources/elasticbeanstalk-2010-12-01.php +++ b/inc/aws-sdk/Aws/ElasticBeanstalk/Resources/elasticbeanstalk-2010-12-01.php @@ -66,6 +66,41 @@ return array ( ), ), 'operations' => array( + 'AbortEnvironmentUpdate' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'EmptyOutput', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'AbortEnvironmentUpdate', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2010-12-01', + ), + 'EnvironmentId' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'EnvironmentName' => array( + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 4, + 'maxLength' => 23, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'Unable to perform the specified operation because the user does not have enough privileges for one of more downstream aws services', + 'class' => 'InsufficientPrivilegesException', + ), + ), + ), 'CheckDNSAvailability' => array( 'httpMethod' => 'POST', 'uri' => '/', @@ -321,12 +356,6 @@ return array ( 'minLength' => 1, 'maxLength' => 100, ), - 'VersionLabel' => array( - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 100, - ), 'EnvironmentName' => array( 'required' => true, 'type' => 'string', @@ -334,27 +363,69 @@ return array ( 'minLength' => 4, 'maxLength' => 23, ), - 'TemplateName' => array( + 'Description' => array( 'type' => 'string', 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 100, + 'maxLength' => 200, ), - 'SolutionStackName' => array( + 'CNAMEPrefix' => array( + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 4, + 'maxLength' => 63, + ), + 'Tier' => array( + 'type' => 'object', + 'location' => 'aws.query', + 'properties' => array( + 'Name' => array( + 'type' => 'string', + ), + 'Type' => array( + 'type' => 'string', + ), + 'Version' => array( + 'type' => 'string', + ), + ), + ), + 'Tags' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'Tags.member', + 'items' => array( + 'name' => 'Tag', + 'type' => 'object', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + 'minLength' => 1, + 'maxLength' => 128, + ), + 'Value' => array( + 'type' => 'string', + 'minLength' => 1, + 'maxLength' => 256, + ), + ), + ), + ), + 'VersionLabel' => array( 'type' => 'string', 'location' => 'aws.query', + 'minLength' => 1, 'maxLength' => 100, ), - 'CNAMEPrefix' => array( + 'TemplateName' => array( 'type' => 'string', 'location' => 'aws.query', - 'minLength' => 4, - 'maxLength' => 63, + 'minLength' => 1, + 'maxLength' => 100, ), - 'Description' => array( + 'SolutionStackName' => array( 'type' => 'string', 'location' => 'aws.query', - 'maxLength' => 200, + 'maxLength' => 100, ), 'OptionSettings' => array( 'type' => 'array', @@ -918,14 +989,6 @@ return array ( 'Severity' => array( 'type' => 'string', 'location' => 'aws.query', - 'enum' => array( - 'TRACE', - 'DEBUG', - 'INFO', - 'WARN', - 'ERROR', - 'FATAL', - ), ), 'StartTime' => array( 'type' => array( @@ -1042,9 +1105,6 @@ return array ( 'required' => true, 'type' => 'string', 'location' => 'aws.query', - 'enum' => array( - 'tail', - ), ), ), ), @@ -1108,9 +1168,6 @@ return array ( 'required' => true, 'type' => 'string', 'location' => 'aws.query', - 'enum' => array( - 'tail', - ), ), ), ), @@ -1370,6 +1427,26 @@ return array ( 'minLength' => 4, 'maxLength' => 23, ), + 'Description' => array( + 'type' => 'string', + 'location' => 'aws.query', + 'maxLength' => 200, + ), + 'Tier' => array( + 'type' => 'object', + 'location' => 'aws.query', + 'properties' => array( + 'Name' => array( + 'type' => 'string', + ), + 'Type' => array( + 'type' => 'string', + ), + 'Version' => array( + 'type' => 'string', + ), + ), + ), 'VersionLabel' => array( 'type' => 'string', 'location' => 'aws.query', @@ -1382,10 +1459,10 @@ return array ( 'minLength' => 1, 'maxLength' => 100, ), - 'Description' => array( + 'SolutionStackName' => array( 'type' => 'string', 'location' => 'aws.query', - 'maxLength' => 200, + 'maxLength' => 100, ), 'OptionSettings' => array( 'type' => 'array', @@ -1499,6 +1576,10 @@ return array ( ), ), 'models' => array( + 'EmptyOutput' => array( + 'type' => 'object', + 'additionalProperties' => true, + ), 'CheckDNSAvailabilityResultMessage' => array( 'type' => 'object', 'additionalProperties' => true, @@ -1701,6 +1782,10 @@ return array ( 'type' => 'string', 'location' => 'xml', ), + 'AbortableOperationInProgress' => array( + 'type' => 'boolean', + 'location' => 'xml', + ), 'Health' => array( 'type' => 'string', 'location' => 'xml', @@ -1738,6 +1823,21 @@ return array ( ), ), ), + 'Tier' => array( + 'type' => 'object', + 'location' => 'xml', + 'properties' => array( + 'Name' => array( + 'type' => 'string', + ), + 'Type' => array( + 'type' => 'string', + ), + 'Version' => array( + 'type' => 'string', + ), + ), + ), ), ), 'CreateStorageLocationResultMessage' => array( @@ -1750,10 +1850,6 @@ return array ( ), ), ), - 'EmptyOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - ), 'ApplicationVersionDescriptionsMessage' => array( 'type' => 'object', 'additionalProperties' => true, @@ -2045,6 +2141,22 @@ return array ( ), ), ), + 'Queues' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Queue', + 'type' => 'object', + 'sentAs' => 'member', + 'properties' => array( + 'Name' => array( + 'type' => 'string', + ), + 'URL' => array( + 'type' => 'string', + ), + ), + ), + ), ), ), ), @@ -2097,6 +2209,9 @@ return array ( 'Status' => array( 'type' => 'string', ), + 'AbortableOperationInProgress' => array( + 'type' => 'boolean', + ), 'Health' => array( 'type' => 'string', ), @@ -2132,6 +2247,20 @@ return array ( ), ), ), + 'Tier' => array( + 'type' => 'object', + 'properties' => array( + 'Name' => array( + 'type' => 'string', + ), + 'Type' => array( + 'type' => 'string', + ), + 'Version' => array( + 'type' => 'string', + ), + ), + ), ), ), ), @@ -2279,28 +2408,26 @@ return array ( ), ), 'iterators' => array( - 'operations' => array( - 'DescribeApplicationVersions' => array( - 'result_key' => 'ApplicationVersions', - ), - 'DescribeApplications' => array( - 'result_key' => 'Applications', - ), - 'DescribeConfigurationOptions' => array( - 'result_key' => 'Options', - ), - 'DescribeEnvironments' => array( - 'result_key' => 'Environments', - ), - 'DescribeEvents' => array( - 'token_param' => 'NextToken', - 'token_key' => 'NextToken', - 'limit_key' => 'MaxRecords', - 'result_key' => 'Events', - ), - 'ListAvailableSolutionStacks' => array( - 'result_key' => 'SolutionStacks', - ), + 'DescribeApplicationVersions' => array( + 'result_key' => 'ApplicationVersions', + ), + 'DescribeApplications' => array( + 'result_key' => 'Applications', + ), + 'DescribeConfigurationOptions' => array( + 'result_key' => 'Options', + ), + 'DescribeEnvironments' => array( + 'result_key' => 'Environments', + ), + 'DescribeEvents' => array( + 'input_token' => 'NextToken', + 'output_token' => 'NextToken', + 'limit_key' => 'MaxRecords', + 'result_key' => 'Events', + ), + 'ListAvailableSolutionStacks' => array( + 'result_key' => 'SolutionStacks', ), ), 'waiters' => array( diff --git a/inc/aws-sdk/Aws/ElasticLoadBalancing/ElasticLoadBalancingClient.php b/inc/aws-sdk/Aws/ElasticLoadBalancing/ElasticLoadBalancingClient.php index beaa371..0ae30fc 100755 --- a/inc/aws-sdk/Aws/ElasticLoadBalancing/ElasticLoadBalancingClient.php +++ b/inc/aws-sdk/Aws/ElasticLoadBalancing/ElasticLoadBalancingClient.php @@ -26,6 +26,7 @@ use Guzzle\Service\Resource\ResourceIteratorInterface; /** * Client to interact with Elastic Load Balancing * + * @method Model addTags(array $args = array()) {@command ElasticLoadBalancing AddTags} * @method Model applySecurityGroupsToLoadBalancer(array $args = array()) {@command ElasticLoadBalancing ApplySecurityGroupsToLoadBalancer} * @method Model attachLoadBalancerToSubnets(array $args = array()) {@command ElasticLoadBalancing AttachLoadBalancerToSubnets} * @method Model configureHealthCheck(array $args = array()) {@command ElasticLoadBalancing ConfigureHealthCheck} @@ -43,11 +44,13 @@ use Guzzle\Service\Resource\ResourceIteratorInterface; * @method Model describeLoadBalancerPolicies(array $args = array()) {@command ElasticLoadBalancing DescribeLoadBalancerPolicies} * @method Model describeLoadBalancerPolicyTypes(array $args = array()) {@command ElasticLoadBalancing DescribeLoadBalancerPolicyTypes} * @method Model describeLoadBalancers(array $args = array()) {@command ElasticLoadBalancing DescribeLoadBalancers} + * @method Model describeTags(array $args = array()) {@command ElasticLoadBalancing DescribeTags} * @method Model detachLoadBalancerFromSubnets(array $args = array()) {@command ElasticLoadBalancing DetachLoadBalancerFromSubnets} * @method Model disableAvailabilityZonesForLoadBalancer(array $args = array()) {@command ElasticLoadBalancing DisableAvailabilityZonesForLoadBalancer} * @method Model enableAvailabilityZonesForLoadBalancer(array $args = array()) {@command ElasticLoadBalancing EnableAvailabilityZonesForLoadBalancer} * @method Model modifyLoadBalancerAttributes(array $args = array()) {@command ElasticLoadBalancing ModifyLoadBalancerAttributes} * @method Model registerInstancesWithLoadBalancer(array $args = array()) {@command ElasticLoadBalancing RegisterInstancesWithLoadBalancer} + * @method Model removeTags(array $args = array()) {@command ElasticLoadBalancing RemoveTags} * @method Model setLoadBalancerListenerSSLCertificate(array $args = array()) {@command ElasticLoadBalancing SetLoadBalancerListenerSSLCertificate} * @method Model setLoadBalancerPoliciesForBackendServer(array $args = array()) {@command ElasticLoadBalancing SetLoadBalancerPoliciesForBackendServer} * @method Model setLoadBalancerPoliciesOfListener(array $args = array()) {@command ElasticLoadBalancing SetLoadBalancerPoliciesOfListener} @@ -56,8 +59,8 @@ use Guzzle\Service\Resource\ResourceIteratorInterface; * @method ResourceIteratorInterface getDescribeLoadBalancerPolicyTypesIterator(array $args = array()) The input array uses the parameters of the DescribeLoadBalancerPolicyTypes operation * @method ResourceIteratorInterface getDescribeLoadBalancersIterator(array $args = array()) The input array uses the parameters of the DescribeLoadBalancers operation * - * @link http://docs.aws.amazon.com/aws-sdk-php/guide/latest/service-elasticloadbalancing.html User guide - * @link http://docs.aws.amazon.com/aws-sdk-php/latest/class-Aws.ElasticLoadBalancing.ElasticLoadBalancingClient.html API docs + * @link http://docs.aws.amazon.com/aws-sdk-php/v2/guide/service-elasticloadbalancing.html User guide + * @link http://docs.aws.amazon.com/aws-sdk-php/v2/api/class-Aws.ElasticLoadBalancing.ElasticLoadBalancingClient.html API docs */ class ElasticLoadBalancingClient extends AbstractClient { @@ -69,7 +72,7 @@ class ElasticLoadBalancingClient extends AbstractClient * @param array|Collection $config Client configuration data * * @return self - * @see \Aws\Common\Client\DefaultClient for a list of available configuration options + * @link http://docs.aws.amazon.com/aws-sdk-php/v2/guide/configuration.html#client-configuration-options */ public static function factory($config = array()) { diff --git a/inc/aws-sdk/Aws/ElasticLoadBalancing/Resources/elasticloadbalancing-2012-06-01.php b/inc/aws-sdk/Aws/ElasticLoadBalancing/Resources/elasticloadbalancing-2012-06-01.php index 5db68f4..7ac0d14 100755 --- a/inc/aws-sdk/Aws/ElasticLoadBalancing/Resources/elasticloadbalancing-2012-06-01.php +++ b/inc/aws-sdk/Aws/ElasticLoadBalancing/Resources/elasticloadbalancing-2012-06-01.php @@ -63,6 +63,11 @@ return array ( 'https' => true, 'hostname' => 'elasticloadbalancing.sa-east-1.amazonaws.com', ), + 'cn-north-1' => array( + 'http' => true, + 'https' => true, + 'hostname' => 'elasticloadbalancing.cn-north-1.amazonaws.com.cn', + ), 'us-gov-west-1' => array( 'http' => true, 'https' => true, @@ -70,6 +75,72 @@ return array ( ), ), 'operations' => array( + 'AddTags' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'EmptyOutput', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'AddTags', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2012-06-01', + ), + 'LoadBalancerNames' => array( + 'required' => true, + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'LoadBalancerNames.member', + 'items' => array( + 'name' => 'AccessPointName', + 'type' => 'string', + ), + ), + 'Tags' => array( + 'required' => true, + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'Tags.member', + 'minItems' => 1, + 'items' => array( + 'name' => 'Tag', + 'type' => 'object', + 'properties' => array( + 'Key' => array( + 'required' => true, + 'type' => 'string', + 'minLength' => 1, + 'maxLength' => 128, + ), + 'Value' => array( + 'type' => 'string', + 'maxLength' => 256, + ), + ), + ), + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The specified load balancer could not be found.', + 'class' => 'AccessPointNotFoundException', + ), + array( + 'reason' => 'The quota for the number of tags that can be assigned to a load balancer has been reached.', + 'class' => 'TooManyTagsException', + ), + array( + 'reason' => 'The same tag key specified multiple times.', + 'class' => 'DuplicateTagKeysException', + ), + ), + ), 'ApplySecurityGroupsToLoadBalancer' => array( 'httpMethod' => 'POST', 'uri' => '/', @@ -423,10 +494,32 @@ return array ( 'type' => 'string', 'location' => 'aws.query', ), + 'Tags' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'Tags.member', + 'minItems' => 1, + 'items' => array( + 'name' => 'Tag', + 'type' => 'object', + 'properties' => array( + 'Key' => array( + 'required' => true, + 'type' => 'string', + 'minLength' => 1, + 'maxLength' => 128, + ), + 'Value' => array( + 'type' => 'string', + 'maxLength' => 256, + ), + ), + ), + ), ), 'errorResponses' => array( array( - 'reason' => 'Load balancer name already exists for this account. Please choose another name.', + 'reason' => 'The load balancer name already exists for this account. Please choose another name.', 'class' => 'DuplicateAccessPointNameException', ), array( @@ -457,6 +550,14 @@ return array ( 'reason' => 'Invalid value for scheme. Scheme can only be specified for load balancers in VPC.', 'class' => 'InvalidSchemeException', ), + array( + 'reason' => 'The quota for the number of tags that can be assigned to a load balancer has been reached.', + 'class' => 'TooManyTagsException', + ), + array( + 'reason' => 'The same tag key specified multiple times.', + 'class' => 'DuplicateTagKeysException', + ), ), ), 'CreateLoadBalancerListeners' => array( @@ -946,6 +1047,49 @@ return array ( 'type' => 'string', 'location' => 'aws.query', ), + 'PageSize' => array( + 'type' => 'numeric', + 'location' => 'aws.query', + 'minimum' => 1, + 'maximum' => 400, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The specified load balancer could not be found.', + 'class' => 'AccessPointNotFoundException', + ), + ), + ), + 'DescribeTags' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'DescribeTagsOutput', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DescribeTags', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2012-06-01', + ), + 'LoadBalancerNames' => array( + 'required' => true, + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'LoadBalancerNames.member', + 'minItems' => 1, + 'maxItems' => 20, + 'items' => array( + 'name' => 'AccessPointName', + 'type' => 'string', + ), + ), ), 'errorResponses' => array( array( @@ -1086,7 +1230,7 @@ return array ( 'httpMethod' => 'POST', 'uri' => '/', 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EmptyOutput', + 'responseClass' => 'ModifyLoadBalancerAttributesOutput', 'responseType' => 'model', 'parameters' => array( 'Action' => array( @@ -1119,6 +1263,65 @@ return array ( ), ), ), + 'AccessLog' => array( + 'type' => 'object', + 'properties' => array( + 'Enabled' => array( + 'required' => true, + 'type' => 'boolean', + 'format' => 'boolean-string', + ), + 'S3BucketName' => array( + 'type' => 'string', + ), + 'EmitInterval' => array( + 'type' => 'numeric', + ), + 'S3BucketPrefix' => array( + 'type' => 'string', + ), + ), + ), + 'ConnectionDraining' => array( + 'type' => 'object', + 'properties' => array( + 'Enabled' => array( + 'required' => true, + 'type' => 'boolean', + 'format' => 'boolean-string', + ), + 'Timeout' => array( + 'type' => 'numeric', + ), + ), + ), + 'ConnectionSettings' => array( + 'type' => 'object', + 'properties' => array( + 'IdleTimeout' => array( + 'required' => true, + 'type' => 'numeric', + 'minimum' => 1, + 'maximum' => 3600, + ), + ), + ), + 'AdditionalAttributes' => array( + 'type' => 'array', + 'sentAs' => 'AdditionalAttributes.member', + 'items' => array( + 'name' => 'AdditionalAttribute', + 'type' => 'object', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + ), + 'Value' => array( + 'type' => 'string', + ), + ), + ), + ), ), ), ), @@ -1186,6 +1389,59 @@ return array ( ), ), ), + 'RemoveTags' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'EmptyOutput', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'RemoveTags', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2012-06-01', + ), + 'LoadBalancerNames' => array( + 'required' => true, + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'LoadBalancerNames.member', + 'items' => array( + 'name' => 'AccessPointName', + 'type' => 'string', + ), + ), + 'Tags' => array( + 'required' => true, + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'Tags.member', + 'minItems' => 1, + 'items' => array( + 'name' => 'TagKeyOnly', + 'type' => 'object', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + 'minLength' => 1, + 'maxLength' => 128, + ), + ), + ), + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The specified load balancer could not be found.', + 'class' => 'AccessPointNotFoundException', + ), + ), + ), 'SetLoadBalancerListenerSSLCertificate' => array( 'httpMethod' => 'POST', 'uri' => '/', @@ -1350,6 +1606,10 @@ return array ( ), ), 'models' => array( + 'EmptyOutput' => array( + 'type' => 'object', + 'additionalProperties' => true, + ), 'ApplySecurityGroupsToLoadBalancerOutput' => array( 'type' => 'object', 'additionalProperties' => true, @@ -1407,10 +1667,6 @@ return array ( ), ), ), - 'EmptyOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - ), 'CreateAccessPointOutput' => array( 'type' => 'object', 'additionalProperties' => true, @@ -1486,6 +1742,58 @@ return array ( ), ), ), + 'AccessLog' => array( + 'type' => 'object', + 'properties' => array( + 'Enabled' => array( + 'type' => 'boolean', + ), + 'S3BucketName' => array( + 'type' => 'string', + ), + 'EmitInterval' => array( + 'type' => 'numeric', + ), + 'S3BucketPrefix' => array( + 'type' => 'string', + ), + ), + ), + 'ConnectionDraining' => array( + 'type' => 'object', + 'properties' => array( + 'Enabled' => array( + 'type' => 'boolean', + ), + 'Timeout' => array( + 'type' => 'numeric', + ), + ), + ), + 'ConnectionSettings' => array( + 'type' => 'object', + 'properties' => array( + 'IdleTimeout' => array( + 'type' => 'numeric', + ), + ), + ), + 'AdditionalAttributes' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'AdditionalAttribute', + 'type' => 'object', + 'sentAs' => 'member', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + ), + 'Value' => array( + 'type' => 'string', + ), + ), + ), + ), ), ), ), @@ -1791,6 +2099,42 @@ return array ( ), ), ), + 'DescribeTagsOutput' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'TagDescriptions' => array( + 'type' => 'array', + 'location' => 'xml', + 'items' => array( + 'name' => 'TagDescription', + 'type' => 'object', + 'sentAs' => 'member', + 'properties' => array( + 'LoadBalancerName' => array( + 'type' => 'string', + ), + 'Tags' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Tag', + 'type' => 'object', + 'sentAs' => 'member', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + ), + 'Value' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + ), + ), + ), 'DetachLoadBalancerFromSubnetsOutput' => array( 'type' => 'object', 'additionalProperties' => true, @@ -1836,6 +2180,82 @@ return array ( ), ), ), + 'ModifyLoadBalancerAttributesOutput' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'LoadBalancerName' => array( + 'type' => 'string', + 'location' => 'xml', + ), + 'LoadBalancerAttributes' => array( + 'type' => 'object', + 'location' => 'xml', + 'properties' => array( + 'CrossZoneLoadBalancing' => array( + 'type' => 'object', + 'properties' => array( + 'Enabled' => array( + 'type' => 'boolean', + ), + ), + ), + 'AccessLog' => array( + 'type' => 'object', + 'properties' => array( + 'Enabled' => array( + 'type' => 'boolean', + ), + 'S3BucketName' => array( + 'type' => 'string', + ), + 'EmitInterval' => array( + 'type' => 'numeric', + ), + 'S3BucketPrefix' => array( + 'type' => 'string', + ), + ), + ), + 'ConnectionDraining' => array( + 'type' => 'object', + 'properties' => array( + 'Enabled' => array( + 'type' => 'boolean', + ), + 'Timeout' => array( + 'type' => 'numeric', + ), + ), + ), + 'ConnectionSettings' => array( + 'type' => 'object', + 'properties' => array( + 'IdleTimeout' => array( + 'type' => 'numeric', + ), + ), + ), + 'AdditionalAttributes' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'AdditionalAttribute', + 'type' => 'object', + 'sentAs' => 'member', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + ), + 'Value' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + ), + ), 'RegisterEndPointsOutput' => array( 'type' => 'object', 'additionalProperties' => true, @@ -1858,21 +2278,22 @@ return array ( ), ), 'iterators' => array( - 'operations' => array( - 'DescribeInstanceHealth' => array( - 'result_key' => 'InstanceStates', - ), - 'DescribeLoadBalancerPolicies' => array( - 'result_key' => 'PolicyDescriptions', - ), - 'DescribeLoadBalancerPolicyTypes' => array( - 'result_key' => 'PolicyTypeDescriptions', - ), - 'DescribeLoadBalancers' => array( - 'token_param' => 'Marker', - 'token_key' => 'NextMarker', - 'result_key' => 'LoadBalancerDescriptions', - ), + 'DescribeInstanceHealth' => array( + 'result_key' => 'InstanceStates', + ), + 'DescribeLoadBalancerPolicies' => array( + 'result_key' => 'PolicyDescriptions', + ), + 'DescribeLoadBalancerPolicyTypes' => array( + 'result_key' => 'PolicyTypeDescriptions', + ), + 'DescribeLoadBalancers' => array( + 'input_token' => 'Marker', + 'output_token' => 'NextMarker', + 'result_key' => 'LoadBalancerDescriptions', + ), + 'DescribeTags' => array( + 'result_key' => 'TagDescriptions', ), ), ); diff --git a/inc/aws-sdk/Aws/ElasticTranscoder/ElasticTranscoderClient.php b/inc/aws-sdk/Aws/ElasticTranscoder/ElasticTranscoderClient.php index 845fee1..95c8de1 100755 --- a/inc/aws-sdk/Aws/ElasticTranscoder/ElasticTranscoderClient.php +++ b/inc/aws-sdk/Aws/ElasticTranscoder/ElasticTranscoderClient.php @@ -49,8 +49,8 @@ use Guzzle\Service\Resource\ResourceIteratorInterface; * @method ResourceIteratorInterface getListPipelinesIterator(array $args = array()) The input array uses the parameters of the ListPipelines operation * @method ResourceIteratorInterface getListPresetsIterator(array $args = array()) The input array uses the parameters of the ListPresets operation * - * @link http://docs.aws.amazon.com/aws-sdk-php/guide/latest/service-elastictranscoder.html User guide - * @link http://docs.aws.amazon.com/aws-sdk-php/latest/class-Aws.ElasticTranscoder.ElasticTranscoderClient.html API docs + * @link http://docs.aws.amazon.com/aws-sdk-php/v2/guide/service-elastictranscoder.html User guide + * @link http://docs.aws.amazon.com/aws-sdk-php/v2/api/class-Aws.ElasticTranscoder.ElasticTranscoderClient.html API docs */ class ElasticTranscoderClient extends AbstractClient { @@ -62,7 +62,7 @@ class ElasticTranscoderClient extends AbstractClient * @param array|Collection $config Client configuration data * * @return self - * @see \Aws\Common\Client\DefaultClient for a list of available configuration options + * @link http://docs.aws.amazon.com/aws-sdk-php/v2/guide/configuration.html#client-configuration-options */ public static function factory($config = array()) { diff --git a/inc/aws-sdk/Aws/ElasticTranscoder/Resources/elastictranscoder-2012-09-25.php b/inc/aws-sdk/Aws/ElasticTranscoder/Resources/elastictranscoder-2012-09-25.php index e81a4d4..f7a767e 100755 --- a/inc/aws-sdk/Aws/ElasticTranscoder/Resources/elastictranscoder-2012-09-25.php +++ b/inc/aws-sdk/Aws/ElasticTranscoder/Resources/elastictranscoder-2012-09-25.php @@ -52,16 +52,6 @@ return array ( 'https' => true, 'hostname' => 'elastictranscoder.ap-southeast-1.amazonaws.com', ), - 'ap-southeast-2' => array( - 'http' => false, - 'https' => true, - 'hostname' => 'elastictranscoder.ap-southeast-2.amazonaws.com', - ), - 'sa-east-1' => array( - 'http' => false, - 'https' => true, - 'hostname' => 'elastictranscoder.sa-east-1.amazonaws.com', - ), ), 'operations' => array( 'CancelJob' => array( @@ -111,10 +101,12 @@ return array ( 'responseType' => 'model', 'parameters' => array( 'PipelineId' => array( + 'required' => true, 'type' => 'string', 'location' => 'json', ), 'Input' => array( + 'required' => true, 'type' => 'object', 'location' => 'json', 'properties' => array( @@ -138,6 +130,44 @@ return array ( 'Container' => array( 'type' => 'string', ), + 'Encryption' => array( + 'type' => 'object', + 'properties' => array( + 'Mode' => array( + 'type' => 'string', + ), + 'Key' => array( + 'type' => 'string', + ), + 'KeyMd5' => array( + 'type' => 'string', + ), + 'InitializationVector' => array( + 'type' => 'string', + 'maxLength' => 255, + ), + ), + ), + 'DetectedProperties' => array( + 'type' => 'object', + 'properties' => array( + 'Width' => array( + 'type' => 'numeric', + ), + 'Height' => array( + 'type' => 'numeric', + ), + 'FrameRate' => array( + 'type' => 'string', + ), + 'FileSize' => array( + 'type' => 'numeric', + ), + 'DurationMillis' => array( + 'type' => 'numeric', + ), + ), + ), ), ), 'Output' => array( @@ -152,6 +182,24 @@ return array ( 'ThumbnailPattern' => array( 'type' => 'string', ), + 'ThumbnailEncryption' => array( + 'type' => 'object', + 'properties' => array( + 'Mode' => array( + 'type' => 'string', + ), + 'Key' => array( + 'type' => 'string', + ), + 'KeyMd5' => array( + 'type' => 'string', + ), + 'InitializationVector' => array( + 'type' => 'string', + 'maxLength' => 255, + ), + ), + ), 'Rotate' => array( 'type' => 'string', ), @@ -177,6 +225,24 @@ return array ( 'minLength' => 1, 'maxLength' => 255, ), + 'Encryption' => array( + 'type' => 'object', + 'properties' => array( + 'Mode' => array( + 'type' => 'string', + ), + 'Key' => array( + 'type' => 'string', + ), + 'KeyMd5' => array( + 'type' => 'string', + ), + 'InitializationVector' => array( + 'type' => 'string', + 'maxLength' => 255, + ), + ), + ), ), ), ), @@ -212,6 +278,24 @@ return array ( 'AlbumArtFormat' => array( 'type' => 'string', ), + 'Encryption' => array( + 'type' => 'object', + 'properties' => array( + 'Mode' => array( + 'type' => 'string', + ), + 'Key' => array( + 'type' => 'string', + ), + 'KeyMd5' => array( + 'type' => 'string', + ), + 'InitializationVector' => array( + 'type' => 'string', + 'maxLength' => 255, + ), + ), + ), ), ), ), @@ -237,6 +321,112 @@ return array ( ), ), ), + 'Captions' => array( + 'type' => 'object', + 'properties' => array( + 'MergePolicy' => array( + 'type' => 'string', + ), + 'CaptionSources' => array( + 'type' => 'array', + 'maxItems' => 20, + 'items' => array( + 'name' => 'CaptionSource', + 'type' => 'object', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + 'minLength' => 1, + 'maxLength' => 255, + ), + 'Language' => array( + 'type' => 'string', + 'minLength' => 1, + 'maxLength' => 255, + ), + 'TimeOffset' => array( + 'type' => 'string', + ), + 'Label' => array( + 'type' => 'string', + 'minLength' => 1, + 'maxLength' => 40, + ), + 'Encryption' => array( + 'type' => 'object', + 'properties' => array( + 'Mode' => array( + 'type' => 'string', + ), + 'Key' => array( + 'type' => 'string', + ), + 'KeyMd5' => array( + 'type' => 'string', + ), + 'InitializationVector' => array( + 'type' => 'string', + 'maxLength' => 255, + ), + ), + ), + ), + ), + ), + 'CaptionFormats' => array( + 'type' => 'array', + 'maxItems' => 4, + 'items' => array( + 'name' => 'CaptionFormat', + 'type' => 'object', + 'properties' => array( + 'Format' => array( + 'type' => 'string', + ), + 'Pattern' => array( + 'type' => 'string', + ), + 'Encryption' => array( + 'type' => 'object', + 'properties' => array( + 'Mode' => array( + 'type' => 'string', + ), + 'Key' => array( + 'type' => 'string', + ), + 'KeyMd5' => array( + 'type' => 'string', + ), + 'InitializationVector' => array( + 'type' => 'string', + 'maxLength' => 255, + ), + ), + ), + ), + ), + ), + ), + ), + 'Encryption' => array( + 'type' => 'object', + 'properties' => array( + 'Mode' => array( + 'type' => 'string', + ), + 'Key' => array( + 'type' => 'string', + ), + 'KeyMd5' => array( + 'type' => 'string', + ), + 'InitializationVector' => array( + 'type' => 'string', + 'maxLength' => 255, + ), + ), + ), ), ), 'Outputs' => array( @@ -255,6 +445,24 @@ return array ( 'ThumbnailPattern' => array( 'type' => 'string', ), + 'ThumbnailEncryption' => array( + 'type' => 'object', + 'properties' => array( + 'Mode' => array( + 'type' => 'string', + ), + 'Key' => array( + 'type' => 'string', + ), + 'KeyMd5' => array( + 'type' => 'string', + ), + 'InitializationVector' => array( + 'type' => 'string', + 'maxLength' => 255, + ), + ), + ), 'Rotate' => array( 'type' => 'string', ), @@ -280,6 +488,24 @@ return array ( 'minLength' => 1, 'maxLength' => 255, ), + 'Encryption' => array( + 'type' => 'object', + 'properties' => array( + 'Mode' => array( + 'type' => 'string', + ), + 'Key' => array( + 'type' => 'string', + ), + 'KeyMd5' => array( + 'type' => 'string', + ), + 'InitializationVector' => array( + 'type' => 'string', + 'maxLength' => 255, + ), + ), + ), ), ), ), @@ -315,6 +541,24 @@ return array ( 'AlbumArtFormat' => array( 'type' => 'string', ), + 'Encryption' => array( + 'type' => 'object', + 'properties' => array( + 'Mode' => array( + 'type' => 'string', + ), + 'Key' => array( + 'type' => 'string', + ), + 'KeyMd5' => array( + 'type' => 'string', + ), + 'InitializationVector' => array( + 'type' => 'string', + 'maxLength' => 255, + ), + ), + ), ), ), ), @@ -340,6 +584,112 @@ return array ( ), ), ), + 'Captions' => array( + 'type' => 'object', + 'properties' => array( + 'MergePolicy' => array( + 'type' => 'string', + ), + 'CaptionSources' => array( + 'type' => 'array', + 'maxItems' => 20, + 'items' => array( + 'name' => 'CaptionSource', + 'type' => 'object', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + 'minLength' => 1, + 'maxLength' => 255, + ), + 'Language' => array( + 'type' => 'string', + 'minLength' => 1, + 'maxLength' => 255, + ), + 'TimeOffset' => array( + 'type' => 'string', + ), + 'Label' => array( + 'type' => 'string', + 'minLength' => 1, + 'maxLength' => 40, + ), + 'Encryption' => array( + 'type' => 'object', + 'properties' => array( + 'Mode' => array( + 'type' => 'string', + ), + 'Key' => array( + 'type' => 'string', + ), + 'KeyMd5' => array( + 'type' => 'string', + ), + 'InitializationVector' => array( + 'type' => 'string', + 'maxLength' => 255, + ), + ), + ), + ), + ), + ), + 'CaptionFormats' => array( + 'type' => 'array', + 'maxItems' => 4, + 'items' => array( + 'name' => 'CaptionFormat', + 'type' => 'object', + 'properties' => array( + 'Format' => array( + 'type' => 'string', + ), + 'Pattern' => array( + 'type' => 'string', + ), + 'Encryption' => array( + 'type' => 'object', + 'properties' => array( + 'Mode' => array( + 'type' => 'string', + ), + 'Key' => array( + 'type' => 'string', + ), + 'KeyMd5' => array( + 'type' => 'string', + ), + 'InitializationVector' => array( + 'type' => 'string', + 'maxLength' => 255, + ), + ), + ), + ), + ), + ), + ), + ), + 'Encryption' => array( + 'type' => 'object', + 'properties' => array( + 'Mode' => array( + 'type' => 'string', + ), + 'Key' => array( + 'type' => 'string', + ), + 'KeyMd5' => array( + 'type' => 'string', + ), + 'InitializationVector' => array( + 'type' => 'string', + 'maxLength' => 255, + ), + ), + ), ), ), ), @@ -375,6 +725,67 @@ return array ( 'maxLength' => 255, ), ), + 'HlsContentProtection' => array( + 'type' => 'object', + 'properties' => array( + 'Method' => array( + 'type' => 'string', + ), + 'Key' => array( + 'type' => 'string', + ), + 'KeyMd5' => array( + 'type' => 'string', + ), + 'InitializationVector' => array( + 'type' => 'string', + 'maxLength' => 255, + ), + 'LicenseAcquisitionUrl' => array( + 'type' => 'string', + 'maxLength' => 512, + ), + 'KeyStoragePolicy' => array( + 'type' => 'string', + ), + ), + ), + 'PlayReadyDrm' => array( + 'type' => 'object', + 'properties' => array( + 'Format' => array( + 'type' => 'string', + ), + 'Key' => array( + 'type' => 'string', + ), + 'KeyMd5' => array( + 'type' => 'string', + ), + 'KeyId' => array( + 'type' => 'string', + ), + 'InitializationVector' => array( + 'type' => 'string', + 'maxLength' => 255, + ), + 'LicenseAcquisitionUrl' => array( + 'type' => 'string', + 'minLength' => 1, + 'maxLength' => 512, + ), + ), + ), + ), + ), + ), + 'UserMetadata' => array( + 'type' => 'object', + 'location' => 'json', + 'additionalProperties' => array( + 'type' => 'string', + 'data' => array( + 'shape_name' => 'String', ), ), ), @@ -413,12 +824,14 @@ return array ( 'responseType' => 'model', 'parameters' => array( 'Name' => array( + 'required' => true, 'type' => 'string', 'location' => 'json', 'minLength' => 1, 'maxLength' => 40, ), 'InputBucket' => array( + 'required' => true, 'type' => 'string', 'location' => 'json', ), @@ -427,8 +840,14 @@ return array ( 'location' => 'json', ), 'Role' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + ), + 'AwsKmsKeyArn' => array( 'type' => 'string', 'location' => 'json', + 'maxLength' => 255, ), 'Notifications' => array( 'type' => 'object', @@ -559,6 +978,7 @@ return array ( 'responseType' => 'model', 'parameters' => array( 'Name' => array( + 'required' => true, 'type' => 'string', 'location' => 'json', 'minLength' => 1, @@ -570,6 +990,7 @@ return array ( 'maxLength' => 255, ), 'Container' => array( + 'required' => true, 'type' => 'string', 'location' => 'json', ), @@ -686,6 +1107,14 @@ return array ( 'Channels' => array( 'type' => 'string', ), + 'CodecOptions' => array( + 'type' => 'object', + 'properties' => array( + 'Profile' => array( + 'type' => 'string', + ), + ), + ), ), ), 'Thumbnails' => array( @@ -907,6 +1336,16 @@ return array ( 'class' => 'Guzzle\\Service\\Command\\OperationCommand', 'responseClass' => 'ListPipelinesResponse', 'responseType' => 'model', + 'parameters' => array( + 'Ascending' => array( + 'type' => 'string', + 'location' => 'query', + ), + 'PageToken' => array( + 'type' => 'string', + 'location' => 'query', + ), + ), 'errorResponses' => array( array( 'reason' => 'One or more required parameter values were not provided in the request.', @@ -924,8 +1363,6 @@ return array ( 'class' => 'InternalServiceException', ), ), - 'parameters' => array( - ), ), 'ListPresets' => array( 'httpMethod' => 'GET', @@ -933,6 +1370,16 @@ return array ( 'class' => 'Guzzle\\Service\\Command\\OperationCommand', 'responseClass' => 'ListPresetsResponse', 'responseType' => 'model', + 'parameters' => array( + 'Ascending' => array( + 'type' => 'string', + 'location' => 'query', + ), + 'PageToken' => array( + 'type' => 'string', + 'location' => 'query', + ), + ), 'errorResponses' => array( array( 'reason' => 'One or more required parameter values were not provided in the request.', @@ -950,8 +1397,6 @@ return array ( 'class' => 'InternalServiceException', ), ), - 'parameters' => array( - ), ), 'ReadJob' => array( 'httpMethod' => 'GET', @@ -1066,18 +1511,22 @@ return array ( 'responseType' => 'model', 'parameters' => array( 'Role' => array( + 'required' => true, 'type' => 'string', 'location' => 'json', ), 'InputBucket' => array( + 'required' => true, 'type' => 'string', 'location' => 'json', ), 'OutputBucket' => array( + 'required' => true, 'type' => 'string', 'location' => 'json', ), 'Topics' => array( + 'required' => true, 'type' => 'array', 'location' => 'json', 'maxItems' => 30, @@ -1135,6 +1584,11 @@ return array ( 'type' => 'string', 'location' => 'json', ), + 'AwsKmsKeyArn' => array( + 'type' => 'string', + 'location' => 'json', + 'maxLength' => 255, + ), 'Notifications' => array( 'type' => 'object', 'location' => 'json', @@ -1269,6 +1723,7 @@ return array ( 'location' => 'uri', ), 'Notifications' => array( + 'required' => true, 'type' => 'object', 'location' => 'json', 'properties' => array( @@ -1326,6 +1781,7 @@ return array ( 'location' => 'uri', ), 'Status' => array( + 'required' => true, 'type' => 'string', 'location' => 'json', ), @@ -1373,6 +1829,9 @@ return array ( 'Id' => array( 'type' => 'string', ), + 'Arn' => array( + 'type' => 'string', + ), 'PipelineId' => array( 'type' => 'string', ), @@ -1397,6 +1856,43 @@ return array ( 'Container' => array( 'type' => 'string', ), + 'Encryption' => array( + 'type' => 'object', + 'properties' => array( + 'Mode' => array( + 'type' => 'string', + ), + 'Key' => array( + 'type' => 'string', + ), + 'KeyMd5' => array( + 'type' => 'string', + ), + 'InitializationVector' => array( + 'type' => 'string', + ), + ), + ), + 'DetectedProperties' => array( + 'type' => 'object', + 'properties' => array( + 'Width' => array( + 'type' => 'numeric', + ), + 'Height' => array( + 'type' => 'numeric', + ), + 'FrameRate' => array( + 'type' => 'string', + ), + 'FileSize' => array( + 'type' => 'numeric', + ), + 'DurationMillis' => array( + 'type' => 'numeric', + ), + ), + ), ), ), 'Output' => array( @@ -1411,6 +1907,23 @@ return array ( 'ThumbnailPattern' => array( 'type' => 'string', ), + 'ThumbnailEncryption' => array( + 'type' => 'object', + 'properties' => array( + 'Mode' => array( + 'type' => 'string', + ), + 'Key' => array( + 'type' => 'string', + ), + 'KeyMd5' => array( + 'type' => 'string', + ), + 'InitializationVector' => array( + 'type' => 'string', + ), + ), + ), 'Rotate' => array( 'type' => 'string', ), @@ -1435,6 +1948,15 @@ return array ( 'Height' => array( 'type' => 'numeric', ), + 'FrameRate' => array( + 'type' => 'string', + ), + 'FileSize' => array( + 'type' => 'numeric', + ), + 'DurationMillis' => array( + 'type' => 'numeric', + ), 'Watermarks' => array( 'type' => 'array', 'items' => array( @@ -1447,6 +1969,23 @@ return array ( 'InputKey' => array( 'type' => 'string', ), + 'Encryption' => array( + 'type' => 'object', + 'properties' => array( + 'Mode' => array( + 'type' => 'string', + ), + 'Key' => array( + 'type' => 'string', + ), + 'KeyMd5' => array( + 'type' => 'string', + ), + 'InitializationVector' => array( + 'type' => 'string', + ), + ), + ), ), ), ), @@ -1480,6 +2019,23 @@ return array ( 'AlbumArtFormat' => array( 'type' => 'string', ), + 'Encryption' => array( + 'type' => 'object', + 'properties' => array( + 'Mode' => array( + 'type' => 'string', + ), + 'Key' => array( + 'type' => 'string', + ), + 'KeyMd5' => array( + 'type' => 'string', + ), + 'InitializationVector' => array( + 'type' => 'string', + ), + ), + ), ), ), ), @@ -1505,6 +2061,104 @@ return array ( ), ), ), + 'Captions' => array( + 'type' => 'object', + 'properties' => array( + 'MergePolicy' => array( + 'type' => 'string', + ), + 'CaptionSources' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'CaptionSource', + 'type' => 'object', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + ), + 'Language' => array( + 'type' => 'string', + ), + 'TimeOffset' => array( + 'type' => 'string', + ), + 'Label' => array( + 'type' => 'string', + ), + 'Encryption' => array( + 'type' => 'object', + 'properties' => array( + 'Mode' => array( + 'type' => 'string', + ), + 'Key' => array( + 'type' => 'string', + ), + 'KeyMd5' => array( + 'type' => 'string', + ), + 'InitializationVector' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + 'CaptionFormats' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'CaptionFormat', + 'type' => 'object', + 'properties' => array( + 'Format' => array( + 'type' => 'string', + ), + 'Pattern' => array( + 'type' => 'string', + ), + 'Encryption' => array( + 'type' => 'object', + 'properties' => array( + 'Mode' => array( + 'type' => 'string', + ), + 'Key' => array( + 'type' => 'string', + ), + 'KeyMd5' => array( + 'type' => 'string', + ), + 'InitializationVector' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + ), + ), + 'Encryption' => array( + 'type' => 'object', + 'properties' => array( + 'Mode' => array( + 'type' => 'string', + ), + 'Key' => array( + 'type' => 'string', + ), + 'KeyMd5' => array( + 'type' => 'string', + ), + 'InitializationVector' => array( + 'type' => 'string', + ), + ), + ), + 'AppliedColorSpaceConversion' => array( + 'type' => 'string', + ), ), ), 'Outputs' => array( @@ -1522,6 +2176,23 @@ return array ( 'ThumbnailPattern' => array( 'type' => 'string', ), + 'ThumbnailEncryption' => array( + 'type' => 'object', + 'properties' => array( + 'Mode' => array( + 'type' => 'string', + ), + 'Key' => array( + 'type' => 'string', + ), + 'KeyMd5' => array( + 'type' => 'string', + ), + 'InitializationVector' => array( + 'type' => 'string', + ), + ), + ), 'Rotate' => array( 'type' => 'string', ), @@ -1546,6 +2217,15 @@ return array ( 'Height' => array( 'type' => 'numeric', ), + 'FrameRate' => array( + 'type' => 'string', + ), + 'FileSize' => array( + 'type' => 'numeric', + ), + 'DurationMillis' => array( + 'type' => 'numeric', + ), 'Watermarks' => array( 'type' => 'array', 'items' => array( @@ -1558,6 +2238,23 @@ return array ( 'InputKey' => array( 'type' => 'string', ), + 'Encryption' => array( + 'type' => 'object', + 'properties' => array( + 'Mode' => array( + 'type' => 'string', + ), + 'Key' => array( + 'type' => 'string', + ), + 'KeyMd5' => array( + 'type' => 'string', + ), + 'InitializationVector' => array( + 'type' => 'string', + ), + ), + ), ), ), ), @@ -1591,6 +2288,23 @@ return array ( 'AlbumArtFormat' => array( 'type' => 'string', ), + 'Encryption' => array( + 'type' => 'object', + 'properties' => array( + 'Mode' => array( + 'type' => 'string', + ), + 'Key' => array( + 'type' => 'string', + ), + 'KeyMd5' => array( + 'type' => 'string', + ), + 'InitializationVector' => array( + 'type' => 'string', + ), + ), + ), ), ), ), @@ -1616,6 +2330,104 @@ return array ( ), ), ), + 'Captions' => array( + 'type' => 'object', + 'properties' => array( + 'MergePolicy' => array( + 'type' => 'string', + ), + 'CaptionSources' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'CaptionSource', + 'type' => 'object', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + ), + 'Language' => array( + 'type' => 'string', + ), + 'TimeOffset' => array( + 'type' => 'string', + ), + 'Label' => array( + 'type' => 'string', + ), + 'Encryption' => array( + 'type' => 'object', + 'properties' => array( + 'Mode' => array( + 'type' => 'string', + ), + 'Key' => array( + 'type' => 'string', + ), + 'KeyMd5' => array( + 'type' => 'string', + ), + 'InitializationVector' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + 'CaptionFormats' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'CaptionFormat', + 'type' => 'object', + 'properties' => array( + 'Format' => array( + 'type' => 'string', + ), + 'Pattern' => array( + 'type' => 'string', + ), + 'Encryption' => array( + 'type' => 'object', + 'properties' => array( + 'Mode' => array( + 'type' => 'string', + ), + 'Key' => array( + 'type' => 'string', + ), + 'KeyMd5' => array( + 'type' => 'string', + ), + 'InitializationVector' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + ), + ), + 'Encryption' => array( + 'type' => 'object', + 'properties' => array( + 'Mode' => array( + 'type' => 'string', + ), + 'Key' => array( + 'type' => 'string', + ), + 'KeyMd5' => array( + 'type' => 'string', + ), + 'InitializationVector' => array( + 'type' => 'string', + ), + ), + ), + 'AppliedColorSpaceConversion' => array( + 'type' => 'string', + ), ), ), ), @@ -1641,6 +2453,52 @@ return array ( 'type' => 'string', ), ), + 'HlsContentProtection' => array( + 'type' => 'object', + 'properties' => array( + 'Method' => array( + 'type' => 'string', + ), + 'Key' => array( + 'type' => 'string', + ), + 'KeyMd5' => array( + 'type' => 'string', + ), + 'InitializationVector' => array( + 'type' => 'string', + ), + 'LicenseAcquisitionUrl' => array( + 'type' => 'string', + ), + 'KeyStoragePolicy' => array( + 'type' => 'string', + ), + ), + ), + 'PlayReadyDrm' => array( + 'type' => 'object', + 'properties' => array( + 'Format' => array( + 'type' => 'string', + ), + 'Key' => array( + 'type' => 'string', + ), + 'KeyMd5' => array( + 'type' => 'string', + ), + 'KeyId' => array( + 'type' => 'string', + ), + 'InitializationVector' => array( + 'type' => 'string', + ), + 'LicenseAcquisitionUrl' => array( + 'type' => 'string', + ), + ), + ), 'Status' => array( 'type' => 'string', ), @@ -1653,6 +2511,26 @@ return array ( 'Status' => array( 'type' => 'string', ), + 'UserMetadata' => array( + 'type' => 'object', + 'additionalProperties' => array( + 'type' => 'string', + ), + ), + 'Timing' => array( + 'type' => 'object', + 'properties' => array( + 'SubmitTimeMillis' => array( + 'type' => 'numeric', + ), + 'StartTimeMillis' => array( + 'type' => 'numeric', + ), + 'FinishTimeMillis' => array( + 'type' => 'numeric', + ), + ), + ), ), ), ), @@ -1686,6 +2564,9 @@ return array ( 'Role' => array( 'type' => 'string', ), + 'AwsKmsKeyArn' => array( + 'type' => 'string', + ), 'Notifications' => array( 'type' => 'object', 'properties' => array( @@ -1771,6 +2652,22 @@ return array ( ), ), ), + 'Warnings' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'Warning', + 'type' => 'object', + 'properties' => array( + 'Code' => array( + 'type' => 'string', + ), + 'Message' => array( + 'type' => 'string', + ), + ), + ), + ), ), ), 'CreatePresetResponse' => array( @@ -1784,6 +2681,9 @@ return array ( 'Id' => array( 'type' => 'string', ), + 'Arn' => array( + 'type' => 'string', + ), 'Name' => array( 'type' => 'string', ), @@ -1808,6 +2708,14 @@ return array ( 'Channels' => array( 'type' => 'string', ), + 'CodecOptions' => array( + 'type' => 'object', + 'properties' => array( + 'Profile' => array( + 'type' => 'string', + ), + ), + ), ), ), 'Video' => array( @@ -1953,6 +2861,9 @@ return array ( 'Id' => array( 'type' => 'string', ), + 'Arn' => array( + 'type' => 'string', + ), 'PipelineId' => array( 'type' => 'string', ), @@ -1977,6 +2888,43 @@ return array ( 'Container' => array( 'type' => 'string', ), + 'Encryption' => array( + 'type' => 'object', + 'properties' => array( + 'Mode' => array( + 'type' => 'string', + ), + 'Key' => array( + 'type' => 'string', + ), + 'KeyMd5' => array( + 'type' => 'string', + ), + 'InitializationVector' => array( + 'type' => 'string', + ), + ), + ), + 'DetectedProperties' => array( + 'type' => 'object', + 'properties' => array( + 'Width' => array( + 'type' => 'numeric', + ), + 'Height' => array( + 'type' => 'numeric', + ), + 'FrameRate' => array( + 'type' => 'string', + ), + 'FileSize' => array( + 'type' => 'numeric', + ), + 'DurationMillis' => array( + 'type' => 'numeric', + ), + ), + ), ), ), 'Output' => array( @@ -1991,6 +2939,23 @@ return array ( 'ThumbnailPattern' => array( 'type' => 'string', ), + 'ThumbnailEncryption' => array( + 'type' => 'object', + 'properties' => array( + 'Mode' => array( + 'type' => 'string', + ), + 'Key' => array( + 'type' => 'string', + ), + 'KeyMd5' => array( + 'type' => 'string', + ), + 'InitializationVector' => array( + 'type' => 'string', + ), + ), + ), 'Rotate' => array( 'type' => 'string', ), @@ -2015,6 +2980,15 @@ return array ( 'Height' => array( 'type' => 'numeric', ), + 'FrameRate' => array( + 'type' => 'string', + ), + 'FileSize' => array( + 'type' => 'numeric', + ), + 'DurationMillis' => array( + 'type' => 'numeric', + ), 'Watermarks' => array( 'type' => 'array', 'items' => array( @@ -2027,6 +3001,23 @@ return array ( 'InputKey' => array( 'type' => 'string', ), + 'Encryption' => array( + 'type' => 'object', + 'properties' => array( + 'Mode' => array( + 'type' => 'string', + ), + 'Key' => array( + 'type' => 'string', + ), + 'KeyMd5' => array( + 'type' => 'string', + ), + 'InitializationVector' => array( + 'type' => 'string', + ), + ), + ), ), ), ), @@ -2060,6 +3051,23 @@ return array ( 'AlbumArtFormat' => array( 'type' => 'string', ), + 'Encryption' => array( + 'type' => 'object', + 'properties' => array( + 'Mode' => array( + 'type' => 'string', + ), + 'Key' => array( + 'type' => 'string', + ), + 'KeyMd5' => array( + 'type' => 'string', + ), + 'InitializationVector' => array( + 'type' => 'string', + ), + ), + ), ), ), ), @@ -2085,6 +3093,104 @@ return array ( ), ), ), + 'Captions' => array( + 'type' => 'object', + 'properties' => array( + 'MergePolicy' => array( + 'type' => 'string', + ), + 'CaptionSources' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'CaptionSource', + 'type' => 'object', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + ), + 'Language' => array( + 'type' => 'string', + ), + 'TimeOffset' => array( + 'type' => 'string', + ), + 'Label' => array( + 'type' => 'string', + ), + 'Encryption' => array( + 'type' => 'object', + 'properties' => array( + 'Mode' => array( + 'type' => 'string', + ), + 'Key' => array( + 'type' => 'string', + ), + 'KeyMd5' => array( + 'type' => 'string', + ), + 'InitializationVector' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + 'CaptionFormats' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'CaptionFormat', + 'type' => 'object', + 'properties' => array( + 'Format' => array( + 'type' => 'string', + ), + 'Pattern' => array( + 'type' => 'string', + ), + 'Encryption' => array( + 'type' => 'object', + 'properties' => array( + 'Mode' => array( + 'type' => 'string', + ), + 'Key' => array( + 'type' => 'string', + ), + 'KeyMd5' => array( + 'type' => 'string', + ), + 'InitializationVector' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + ), + ), + 'Encryption' => array( + 'type' => 'object', + 'properties' => array( + 'Mode' => array( + 'type' => 'string', + ), + 'Key' => array( + 'type' => 'string', + ), + 'KeyMd5' => array( + 'type' => 'string', + ), + 'InitializationVector' => array( + 'type' => 'string', + ), + ), + ), + 'AppliedColorSpaceConversion' => array( + 'type' => 'string', + ), ), ), 'Outputs' => array( @@ -2102,6 +3208,23 @@ return array ( 'ThumbnailPattern' => array( 'type' => 'string', ), + 'ThumbnailEncryption' => array( + 'type' => 'object', + 'properties' => array( + 'Mode' => array( + 'type' => 'string', + ), + 'Key' => array( + 'type' => 'string', + ), + 'KeyMd5' => array( + 'type' => 'string', + ), + 'InitializationVector' => array( + 'type' => 'string', + ), + ), + ), 'Rotate' => array( 'type' => 'string', ), @@ -2126,6 +3249,15 @@ return array ( 'Height' => array( 'type' => 'numeric', ), + 'FrameRate' => array( + 'type' => 'string', + ), + 'FileSize' => array( + 'type' => 'numeric', + ), + 'DurationMillis' => array( + 'type' => 'numeric', + ), 'Watermarks' => array( 'type' => 'array', 'items' => array( @@ -2138,6 +3270,23 @@ return array ( 'InputKey' => array( 'type' => 'string', ), + 'Encryption' => array( + 'type' => 'object', + 'properties' => array( + 'Mode' => array( + 'type' => 'string', + ), + 'Key' => array( + 'type' => 'string', + ), + 'KeyMd5' => array( + 'type' => 'string', + ), + 'InitializationVector' => array( + 'type' => 'string', + ), + ), + ), ), ), ), @@ -2171,6 +3320,23 @@ return array ( 'AlbumArtFormat' => array( 'type' => 'string', ), + 'Encryption' => array( + 'type' => 'object', + 'properties' => array( + 'Mode' => array( + 'type' => 'string', + ), + 'Key' => array( + 'type' => 'string', + ), + 'KeyMd5' => array( + 'type' => 'string', + ), + 'InitializationVector' => array( + 'type' => 'string', + ), + ), + ), ), ), ), @@ -2196,6 +3362,104 @@ return array ( ), ), ), + 'Captions' => array( + 'type' => 'object', + 'properties' => array( + 'MergePolicy' => array( + 'type' => 'string', + ), + 'CaptionSources' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'CaptionSource', + 'type' => 'object', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + ), + 'Language' => array( + 'type' => 'string', + ), + 'TimeOffset' => array( + 'type' => 'string', + ), + 'Label' => array( + 'type' => 'string', + ), + 'Encryption' => array( + 'type' => 'object', + 'properties' => array( + 'Mode' => array( + 'type' => 'string', + ), + 'Key' => array( + 'type' => 'string', + ), + 'KeyMd5' => array( + 'type' => 'string', + ), + 'InitializationVector' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + 'CaptionFormats' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'CaptionFormat', + 'type' => 'object', + 'properties' => array( + 'Format' => array( + 'type' => 'string', + ), + 'Pattern' => array( + 'type' => 'string', + ), + 'Encryption' => array( + 'type' => 'object', + 'properties' => array( + 'Mode' => array( + 'type' => 'string', + ), + 'Key' => array( + 'type' => 'string', + ), + 'KeyMd5' => array( + 'type' => 'string', + ), + 'InitializationVector' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + ), + ), + 'Encryption' => array( + 'type' => 'object', + 'properties' => array( + 'Mode' => array( + 'type' => 'string', + ), + 'Key' => array( + 'type' => 'string', + ), + 'KeyMd5' => array( + 'type' => 'string', + ), + 'InitializationVector' => array( + 'type' => 'string', + ), + ), + ), + 'AppliedColorSpaceConversion' => array( + 'type' => 'string', + ), ), ), ), @@ -2221,6 +3485,52 @@ return array ( 'type' => 'string', ), ), + 'HlsContentProtection' => array( + 'type' => 'object', + 'properties' => array( + 'Method' => array( + 'type' => 'string', + ), + 'Key' => array( + 'type' => 'string', + ), + 'KeyMd5' => array( + 'type' => 'string', + ), + 'InitializationVector' => array( + 'type' => 'string', + ), + 'LicenseAcquisitionUrl' => array( + 'type' => 'string', + ), + 'KeyStoragePolicy' => array( + 'type' => 'string', + ), + ), + ), + 'PlayReadyDrm' => array( + 'type' => 'object', + 'properties' => array( + 'Format' => array( + 'type' => 'string', + ), + 'Key' => array( + 'type' => 'string', + ), + 'KeyMd5' => array( + 'type' => 'string', + ), + 'KeyId' => array( + 'type' => 'string', + ), + 'InitializationVector' => array( + 'type' => 'string', + ), + 'LicenseAcquisitionUrl' => array( + 'type' => 'string', + ), + ), + ), 'Status' => array( 'type' => 'string', ), @@ -2233,6 +3543,26 @@ return array ( 'Status' => array( 'type' => 'string', ), + 'UserMetadata' => array( + 'type' => 'object', + 'additionalProperties' => array( + 'type' => 'string', + ), + ), + 'Timing' => array( + 'type' => 'object', + 'properties' => array( + 'SubmitTimeMillis' => array( + 'type' => 'numeric', + ), + 'StartTimeMillis' => array( + 'type' => 'numeric', + ), + 'FinishTimeMillis' => array( + 'type' => 'numeric', + ), + ), + ), ), ), ), @@ -2256,6 +3586,9 @@ return array ( 'Id' => array( 'type' => 'string', ), + 'Arn' => array( + 'type' => 'string', + ), 'PipelineId' => array( 'type' => 'string', ), @@ -2280,6 +3613,43 @@ return array ( 'Container' => array( 'type' => 'string', ), + 'Encryption' => array( + 'type' => 'object', + 'properties' => array( + 'Mode' => array( + 'type' => 'string', + ), + 'Key' => array( + 'type' => 'string', + ), + 'KeyMd5' => array( + 'type' => 'string', + ), + 'InitializationVector' => array( + 'type' => 'string', + ), + ), + ), + 'DetectedProperties' => array( + 'type' => 'object', + 'properties' => array( + 'Width' => array( + 'type' => 'numeric', + ), + 'Height' => array( + 'type' => 'numeric', + ), + 'FrameRate' => array( + 'type' => 'string', + ), + 'FileSize' => array( + 'type' => 'numeric', + ), + 'DurationMillis' => array( + 'type' => 'numeric', + ), + ), + ), ), ), 'Output' => array( @@ -2294,6 +3664,23 @@ return array ( 'ThumbnailPattern' => array( 'type' => 'string', ), + 'ThumbnailEncryption' => array( + 'type' => 'object', + 'properties' => array( + 'Mode' => array( + 'type' => 'string', + ), + 'Key' => array( + 'type' => 'string', + ), + 'KeyMd5' => array( + 'type' => 'string', + ), + 'InitializationVector' => array( + 'type' => 'string', + ), + ), + ), 'Rotate' => array( 'type' => 'string', ), @@ -2318,6 +3705,15 @@ return array ( 'Height' => array( 'type' => 'numeric', ), + 'FrameRate' => array( + 'type' => 'string', + ), + 'FileSize' => array( + 'type' => 'numeric', + ), + 'DurationMillis' => array( + 'type' => 'numeric', + ), 'Watermarks' => array( 'type' => 'array', 'items' => array( @@ -2330,6 +3726,23 @@ return array ( 'InputKey' => array( 'type' => 'string', ), + 'Encryption' => array( + 'type' => 'object', + 'properties' => array( + 'Mode' => array( + 'type' => 'string', + ), + 'Key' => array( + 'type' => 'string', + ), + 'KeyMd5' => array( + 'type' => 'string', + ), + 'InitializationVector' => array( + 'type' => 'string', + ), + ), + ), ), ), ), @@ -2363,6 +3776,23 @@ return array ( 'AlbumArtFormat' => array( 'type' => 'string', ), + 'Encryption' => array( + 'type' => 'object', + 'properties' => array( + 'Mode' => array( + 'type' => 'string', + ), + 'Key' => array( + 'type' => 'string', + ), + 'KeyMd5' => array( + 'type' => 'string', + ), + 'InitializationVector' => array( + 'type' => 'string', + ), + ), + ), ), ), ), @@ -2388,6 +3818,104 @@ return array ( ), ), ), + 'Captions' => array( + 'type' => 'object', + 'properties' => array( + 'MergePolicy' => array( + 'type' => 'string', + ), + 'CaptionSources' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'CaptionSource', + 'type' => 'object', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + ), + 'Language' => array( + 'type' => 'string', + ), + 'TimeOffset' => array( + 'type' => 'string', + ), + 'Label' => array( + 'type' => 'string', + ), + 'Encryption' => array( + 'type' => 'object', + 'properties' => array( + 'Mode' => array( + 'type' => 'string', + ), + 'Key' => array( + 'type' => 'string', + ), + 'KeyMd5' => array( + 'type' => 'string', + ), + 'InitializationVector' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + 'CaptionFormats' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'CaptionFormat', + 'type' => 'object', + 'properties' => array( + 'Format' => array( + 'type' => 'string', + ), + 'Pattern' => array( + 'type' => 'string', + ), + 'Encryption' => array( + 'type' => 'object', + 'properties' => array( + 'Mode' => array( + 'type' => 'string', + ), + 'Key' => array( + 'type' => 'string', + ), + 'KeyMd5' => array( + 'type' => 'string', + ), + 'InitializationVector' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + ), + ), + 'Encryption' => array( + 'type' => 'object', + 'properties' => array( + 'Mode' => array( + 'type' => 'string', + ), + 'Key' => array( + 'type' => 'string', + ), + 'KeyMd5' => array( + 'type' => 'string', + ), + 'InitializationVector' => array( + 'type' => 'string', + ), + ), + ), + 'AppliedColorSpaceConversion' => array( + 'type' => 'string', + ), ), ), 'Outputs' => array( @@ -2405,6 +3933,23 @@ return array ( 'ThumbnailPattern' => array( 'type' => 'string', ), + 'ThumbnailEncryption' => array( + 'type' => 'object', + 'properties' => array( + 'Mode' => array( + 'type' => 'string', + ), + 'Key' => array( + 'type' => 'string', + ), + 'KeyMd5' => array( + 'type' => 'string', + ), + 'InitializationVector' => array( + 'type' => 'string', + ), + ), + ), 'Rotate' => array( 'type' => 'string', ), @@ -2429,6 +3974,15 @@ return array ( 'Height' => array( 'type' => 'numeric', ), + 'FrameRate' => array( + 'type' => 'string', + ), + 'FileSize' => array( + 'type' => 'numeric', + ), + 'DurationMillis' => array( + 'type' => 'numeric', + ), 'Watermarks' => array( 'type' => 'array', 'items' => array( @@ -2441,6 +3995,23 @@ return array ( 'InputKey' => array( 'type' => 'string', ), + 'Encryption' => array( + 'type' => 'object', + 'properties' => array( + 'Mode' => array( + 'type' => 'string', + ), + 'Key' => array( + 'type' => 'string', + ), + 'KeyMd5' => array( + 'type' => 'string', + ), + 'InitializationVector' => array( + 'type' => 'string', + ), + ), + ), ), ), ), @@ -2474,6 +4045,23 @@ return array ( 'AlbumArtFormat' => array( 'type' => 'string', ), + 'Encryption' => array( + 'type' => 'object', + 'properties' => array( + 'Mode' => array( + 'type' => 'string', + ), + 'Key' => array( + 'type' => 'string', + ), + 'KeyMd5' => array( + 'type' => 'string', + ), + 'InitializationVector' => array( + 'type' => 'string', + ), + ), + ), ), ), ), @@ -2499,6 +4087,104 @@ return array ( ), ), ), + 'Captions' => array( + 'type' => 'object', + 'properties' => array( + 'MergePolicy' => array( + 'type' => 'string', + ), + 'CaptionSources' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'CaptionSource', + 'type' => 'object', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + ), + 'Language' => array( + 'type' => 'string', + ), + 'TimeOffset' => array( + 'type' => 'string', + ), + 'Label' => array( + 'type' => 'string', + ), + 'Encryption' => array( + 'type' => 'object', + 'properties' => array( + 'Mode' => array( + 'type' => 'string', + ), + 'Key' => array( + 'type' => 'string', + ), + 'KeyMd5' => array( + 'type' => 'string', + ), + 'InitializationVector' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + 'CaptionFormats' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'CaptionFormat', + 'type' => 'object', + 'properties' => array( + 'Format' => array( + 'type' => 'string', + ), + 'Pattern' => array( + 'type' => 'string', + ), + 'Encryption' => array( + 'type' => 'object', + 'properties' => array( + 'Mode' => array( + 'type' => 'string', + ), + 'Key' => array( + 'type' => 'string', + ), + 'KeyMd5' => array( + 'type' => 'string', + ), + 'InitializationVector' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + ), + ), + 'Encryption' => array( + 'type' => 'object', + 'properties' => array( + 'Mode' => array( + 'type' => 'string', + ), + 'Key' => array( + 'type' => 'string', + ), + 'KeyMd5' => array( + 'type' => 'string', + ), + 'InitializationVector' => array( + 'type' => 'string', + ), + ), + ), + 'AppliedColorSpaceConversion' => array( + 'type' => 'string', + ), ), ), ), @@ -2524,6 +4210,52 @@ return array ( 'type' => 'string', ), ), + 'HlsContentProtection' => array( + 'type' => 'object', + 'properties' => array( + 'Method' => array( + 'type' => 'string', + ), + 'Key' => array( + 'type' => 'string', + ), + 'KeyMd5' => array( + 'type' => 'string', + ), + 'InitializationVector' => array( + 'type' => 'string', + ), + 'LicenseAcquisitionUrl' => array( + 'type' => 'string', + ), + 'KeyStoragePolicy' => array( + 'type' => 'string', + ), + ), + ), + 'PlayReadyDrm' => array( + 'type' => 'object', + 'properties' => array( + 'Format' => array( + 'type' => 'string', + ), + 'Key' => array( + 'type' => 'string', + ), + 'KeyMd5' => array( + 'type' => 'string', + ), + 'KeyId' => array( + 'type' => 'string', + ), + 'InitializationVector' => array( + 'type' => 'string', + ), + 'LicenseAcquisitionUrl' => array( + 'type' => 'string', + ), + ), + ), 'Status' => array( 'type' => 'string', ), @@ -2536,6 +4268,26 @@ return array ( 'Status' => array( 'type' => 'string', ), + 'UserMetadata' => array( + 'type' => 'object', + 'additionalProperties' => array( + 'type' => 'string', + ), + ), + 'Timing' => array( + 'type' => 'object', + 'properties' => array( + 'SubmitTimeMillis' => array( + 'type' => 'numeric', + ), + 'StartTimeMillis' => array( + 'type' => 'numeric', + ), + 'FinishTimeMillis' => array( + 'type' => 'numeric', + ), + ), + ), ), ), ), @@ -2577,6 +4329,9 @@ return array ( 'Role' => array( 'type' => 'string', ), + 'AwsKmsKeyArn' => array( + 'type' => 'string', + ), 'Notifications' => array( 'type' => 'object', 'properties' => array( @@ -2663,6 +4418,10 @@ return array ( ), ), ), + 'NextPageToken' => array( + 'type' => 'string', + 'location' => 'json', + ), ), ), 'ListPresetsResponse' => array( @@ -2679,6 +4438,9 @@ return array ( 'Id' => array( 'type' => 'string', ), + 'Arn' => array( + 'type' => 'string', + ), 'Name' => array( 'type' => 'string', ), @@ -2703,6 +4465,14 @@ return array ( 'Channels' => array( 'type' => 'string', ), + 'CodecOptions' => array( + 'type' => 'object', + 'properties' => array( + 'Profile' => array( + 'type' => 'string', + ), + ), + ), ), ), 'Video' => array( @@ -2829,6 +4599,10 @@ return array ( ), ), ), + 'NextPageToken' => array( + 'type' => 'string', + 'location' => 'json', + ), ), ), 'ReadJobResponse' => array( @@ -2842,6 +4616,9 @@ return array ( 'Id' => array( 'type' => 'string', ), + 'Arn' => array( + 'type' => 'string', + ), 'PipelineId' => array( 'type' => 'string', ), @@ -2866,6 +4643,43 @@ return array ( 'Container' => array( 'type' => 'string', ), + 'Encryption' => array( + 'type' => 'object', + 'properties' => array( + 'Mode' => array( + 'type' => 'string', + ), + 'Key' => array( + 'type' => 'string', + ), + 'KeyMd5' => array( + 'type' => 'string', + ), + 'InitializationVector' => array( + 'type' => 'string', + ), + ), + ), + 'DetectedProperties' => array( + 'type' => 'object', + 'properties' => array( + 'Width' => array( + 'type' => 'numeric', + ), + 'Height' => array( + 'type' => 'numeric', + ), + 'FrameRate' => array( + 'type' => 'string', + ), + 'FileSize' => array( + 'type' => 'numeric', + ), + 'DurationMillis' => array( + 'type' => 'numeric', + ), + ), + ), ), ), 'Output' => array( @@ -2880,6 +4694,23 @@ return array ( 'ThumbnailPattern' => array( 'type' => 'string', ), + 'ThumbnailEncryption' => array( + 'type' => 'object', + 'properties' => array( + 'Mode' => array( + 'type' => 'string', + ), + 'Key' => array( + 'type' => 'string', + ), + 'KeyMd5' => array( + 'type' => 'string', + ), + 'InitializationVector' => array( + 'type' => 'string', + ), + ), + ), 'Rotate' => array( 'type' => 'string', ), @@ -2904,6 +4735,15 @@ return array ( 'Height' => array( 'type' => 'numeric', ), + 'FrameRate' => array( + 'type' => 'string', + ), + 'FileSize' => array( + 'type' => 'numeric', + ), + 'DurationMillis' => array( + 'type' => 'numeric', + ), 'Watermarks' => array( 'type' => 'array', 'items' => array( @@ -2916,64 +4756,196 @@ return array ( 'InputKey' => array( 'type' => 'string', ), + 'Encryption' => array( + 'type' => 'object', + 'properties' => array( + 'Mode' => array( + 'type' => 'string', + ), + 'Key' => array( + 'type' => 'string', + ), + 'KeyMd5' => array( + 'type' => 'string', + ), + 'InitializationVector' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + 'AlbumArt' => array( + 'type' => 'object', + 'properties' => array( + 'MergePolicy' => array( + 'type' => 'string', + ), + 'Artwork' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Artwork', + 'type' => 'object', + 'properties' => array( + 'InputKey' => array( + 'type' => 'string', + ), + 'MaxWidth' => array( + 'type' => 'string', + ), + 'MaxHeight' => array( + 'type' => 'string', + ), + 'SizingPolicy' => array( + 'type' => 'string', + ), + 'PaddingPolicy' => array( + 'type' => 'string', + ), + 'AlbumArtFormat' => array( + 'type' => 'string', + ), + 'Encryption' => array( + 'type' => 'object', + 'properties' => array( + 'Mode' => array( + 'type' => 'string', + ), + 'Key' => array( + 'type' => 'string', + ), + 'KeyMd5' => array( + 'type' => 'string', + ), + 'InitializationVector' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + ), + ), + 'Composition' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Clip', + 'type' => 'object', + 'properties' => array( + 'TimeSpan' => array( + 'type' => 'object', + 'properties' => array( + 'StartTime' => array( + 'type' => 'string', + ), + 'Duration' => array( + 'type' => 'string', + ), + ), + ), ), ), ), - 'AlbumArt' => array( + 'Captions' => array( 'type' => 'object', 'properties' => array( 'MergePolicy' => array( 'type' => 'string', ), - 'Artwork' => array( + 'CaptionSources' => array( 'type' => 'array', 'items' => array( - 'name' => 'Artwork', + 'name' => 'CaptionSource', 'type' => 'object', 'properties' => array( - 'InputKey' => array( - 'type' => 'string', - ), - 'MaxWidth' => array( + 'Key' => array( 'type' => 'string', ), - 'MaxHeight' => array( + 'Language' => array( 'type' => 'string', ), - 'SizingPolicy' => array( + 'TimeOffset' => array( 'type' => 'string', ), - 'PaddingPolicy' => array( + 'Label' => array( 'type' => 'string', ), - 'AlbumArtFormat' => array( - 'type' => 'string', + 'Encryption' => array( + 'type' => 'object', + 'properties' => array( + 'Mode' => array( + 'type' => 'string', + ), + 'Key' => array( + 'type' => 'string', + ), + 'KeyMd5' => array( + 'type' => 'string', + ), + 'InitializationVector' => array( + 'type' => 'string', + ), + ), ), ), ), ), - ), - ), - 'Composition' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'Clip', - 'type' => 'object', - 'properties' => array( - 'TimeSpan' => array( + 'CaptionFormats' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'CaptionFormat', 'type' => 'object', 'properties' => array( - 'StartTime' => array( + 'Format' => array( 'type' => 'string', ), - 'Duration' => array( + 'Pattern' => array( 'type' => 'string', ), + 'Encryption' => array( + 'type' => 'object', + 'properties' => array( + 'Mode' => array( + 'type' => 'string', + ), + 'Key' => array( + 'type' => 'string', + ), + 'KeyMd5' => array( + 'type' => 'string', + ), + 'InitializationVector' => array( + 'type' => 'string', + ), + ), + ), ), ), ), ), ), + 'Encryption' => array( + 'type' => 'object', + 'properties' => array( + 'Mode' => array( + 'type' => 'string', + ), + 'Key' => array( + 'type' => 'string', + ), + 'KeyMd5' => array( + 'type' => 'string', + ), + 'InitializationVector' => array( + 'type' => 'string', + ), + ), + ), + 'AppliedColorSpaceConversion' => array( + 'type' => 'string', + ), ), ), 'Outputs' => array( @@ -2991,6 +4963,23 @@ return array ( 'ThumbnailPattern' => array( 'type' => 'string', ), + 'ThumbnailEncryption' => array( + 'type' => 'object', + 'properties' => array( + 'Mode' => array( + 'type' => 'string', + ), + 'Key' => array( + 'type' => 'string', + ), + 'KeyMd5' => array( + 'type' => 'string', + ), + 'InitializationVector' => array( + 'type' => 'string', + ), + ), + ), 'Rotate' => array( 'type' => 'string', ), @@ -3015,6 +5004,15 @@ return array ( 'Height' => array( 'type' => 'numeric', ), + 'FrameRate' => array( + 'type' => 'string', + ), + 'FileSize' => array( + 'type' => 'numeric', + ), + 'DurationMillis' => array( + 'type' => 'numeric', + ), 'Watermarks' => array( 'type' => 'array', 'items' => array( @@ -3027,6 +5025,23 @@ return array ( 'InputKey' => array( 'type' => 'string', ), + 'Encryption' => array( + 'type' => 'object', + 'properties' => array( + 'Mode' => array( + 'type' => 'string', + ), + 'Key' => array( + 'type' => 'string', + ), + 'KeyMd5' => array( + 'type' => 'string', + ), + 'InitializationVector' => array( + 'type' => 'string', + ), + ), + ), ), ), ), @@ -3060,6 +5075,23 @@ return array ( 'AlbumArtFormat' => array( 'type' => 'string', ), + 'Encryption' => array( + 'type' => 'object', + 'properties' => array( + 'Mode' => array( + 'type' => 'string', + ), + 'Key' => array( + 'type' => 'string', + ), + 'KeyMd5' => array( + 'type' => 'string', + ), + 'InitializationVector' => array( + 'type' => 'string', + ), + ), + ), ), ), ), @@ -3085,6 +5117,104 @@ return array ( ), ), ), + 'Captions' => array( + 'type' => 'object', + 'properties' => array( + 'MergePolicy' => array( + 'type' => 'string', + ), + 'CaptionSources' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'CaptionSource', + 'type' => 'object', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + ), + 'Language' => array( + 'type' => 'string', + ), + 'TimeOffset' => array( + 'type' => 'string', + ), + 'Label' => array( + 'type' => 'string', + ), + 'Encryption' => array( + 'type' => 'object', + 'properties' => array( + 'Mode' => array( + 'type' => 'string', + ), + 'Key' => array( + 'type' => 'string', + ), + 'KeyMd5' => array( + 'type' => 'string', + ), + 'InitializationVector' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + 'CaptionFormats' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'CaptionFormat', + 'type' => 'object', + 'properties' => array( + 'Format' => array( + 'type' => 'string', + ), + 'Pattern' => array( + 'type' => 'string', + ), + 'Encryption' => array( + 'type' => 'object', + 'properties' => array( + 'Mode' => array( + 'type' => 'string', + ), + 'Key' => array( + 'type' => 'string', + ), + 'KeyMd5' => array( + 'type' => 'string', + ), + 'InitializationVector' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + ), + ), + 'Encryption' => array( + 'type' => 'object', + 'properties' => array( + 'Mode' => array( + 'type' => 'string', + ), + 'Key' => array( + 'type' => 'string', + ), + 'KeyMd5' => array( + 'type' => 'string', + ), + 'InitializationVector' => array( + 'type' => 'string', + ), + ), + ), + 'AppliedColorSpaceConversion' => array( + 'type' => 'string', + ), ), ), ), @@ -3110,6 +5240,52 @@ return array ( 'type' => 'string', ), ), + 'HlsContentProtection' => array( + 'type' => 'object', + 'properties' => array( + 'Method' => array( + 'type' => 'string', + ), + 'Key' => array( + 'type' => 'string', + ), + 'KeyMd5' => array( + 'type' => 'string', + ), + 'InitializationVector' => array( + 'type' => 'string', + ), + 'LicenseAcquisitionUrl' => array( + 'type' => 'string', + ), + 'KeyStoragePolicy' => array( + 'type' => 'string', + ), + ), + ), + 'PlayReadyDrm' => array( + 'type' => 'object', + 'properties' => array( + 'Format' => array( + 'type' => 'string', + ), + 'Key' => array( + 'type' => 'string', + ), + 'KeyMd5' => array( + 'type' => 'string', + ), + 'KeyId' => array( + 'type' => 'string', + ), + 'InitializationVector' => array( + 'type' => 'string', + ), + 'LicenseAcquisitionUrl' => array( + 'type' => 'string', + ), + ), + ), 'Status' => array( 'type' => 'string', ), @@ -3122,6 +5298,26 @@ return array ( 'Status' => array( 'type' => 'string', ), + 'UserMetadata' => array( + 'type' => 'object', + 'additionalProperties' => array( + 'type' => 'string', + ), + ), + 'Timing' => array( + 'type' => 'object', + 'properties' => array( + 'SubmitTimeMillis' => array( + 'type' => 'numeric', + ), + 'StartTimeMillis' => array( + 'type' => 'numeric', + ), + 'FinishTimeMillis' => array( + 'type' => 'numeric', + ), + ), + ), ), ), ), @@ -3155,6 +5351,9 @@ return array ( 'Role' => array( 'type' => 'string', ), + 'AwsKmsKeyArn' => array( + 'type' => 'string', + ), 'Notifications' => array( 'type' => 'object', 'properties' => array( @@ -3240,6 +5439,22 @@ return array ( ), ), ), + 'Warnings' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'Warning', + 'type' => 'object', + 'properties' => array( + 'Code' => array( + 'type' => 'string', + ), + 'Message' => array( + 'type' => 'string', + ), + ), + ), + ), ), ), 'ReadPresetResponse' => array( @@ -3253,6 +5468,9 @@ return array ( 'Id' => array( 'type' => 'string', ), + 'Arn' => array( + 'type' => 'string', + ), 'Name' => array( 'type' => 'string', ), @@ -3277,6 +5495,14 @@ return array ( 'Channels' => array( 'type' => 'string', ), + 'CodecOptions' => array( + 'type' => 'object', + 'properties' => array( + 'Profile' => array( + 'type' => 'string', + ), + ), + ), ), ), 'Video' => array( @@ -3451,6 +5677,9 @@ return array ( 'Role' => array( 'type' => 'string', ), + 'AwsKmsKeyArn' => array( + 'type' => 'string', + ), 'Notifications' => array( 'type' => 'object', 'properties' => array( @@ -3536,6 +5765,22 @@ return array ( ), ), ), + 'Warnings' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'Warning', + 'type' => 'object', + 'properties' => array( + 'Code' => array( + 'type' => 'string', + ), + 'Message' => array( + 'type' => 'string', + ), + ), + ), + ), ), ), 'UpdatePipelineNotificationsResponse' => array( @@ -3567,6 +5812,9 @@ return array ( 'Role' => array( 'type' => 'string', ), + 'AwsKmsKeyArn' => array( + 'type' => 'string', + ), 'Notifications' => array( 'type' => 'object', 'properties' => array( @@ -3683,6 +5931,9 @@ return array ( 'Role' => array( 'type' => 'string', ), + 'AwsKmsKeyArn' => array( + 'type' => 'string', + ), 'Notifications' => array( 'type' => 'object', 'properties' => array( @@ -3772,23 +6023,25 @@ return array ( ), ), 'iterators' => array( - 'operations' => array( - 'ListJobsByPipeline' => array( - 'token_param' => 'PageToken', - 'token_key' => 'NextPageToken', - 'result_key' => 'Jobs', - ), - 'ListJobsByStatus' => array( - 'token_param' => 'PageToken', - 'token_key' => 'NextPageToken', - 'result_key' => 'Jobs', - ), - 'ListPipelines' => array( - 'result_key' => 'Pipelines', - ), - 'ListPresets' => array( - 'result_key' => 'Presets', - ), + 'ListJobsByPipeline' => array( + 'input_token' => 'PageToken', + 'output_token' => 'NextPageToken', + 'result_key' => 'Jobs', + ), + 'ListJobsByStatus' => array( + 'input_token' => 'PageToken', + 'output_token' => 'NextPageToken', + 'result_key' => 'Jobs', + ), + 'ListPipelines' => array( + 'input_token' => 'PageToken', + 'output_token' => 'NextPageToken', + 'result_key' => 'Pipelines', + ), + 'ListPresets' => array( + 'input_token' => 'PageToken', + 'output_token' => 'NextPageToken', + 'result_key' => 'Presets', ), ), ); diff --git a/inc/aws-sdk/Aws/Emr/EmrClient.php b/inc/aws-sdk/Aws/Emr/EmrClient.php index e9750b5..f8c3d5a 100755 --- a/inc/aws-sdk/Aws/Emr/EmrClient.php +++ b/inc/aws-sdk/Aws/Emr/EmrClient.php @@ -29,6 +29,7 @@ use Guzzle\Service\Resource\ResourceIteratorInterface; * * @method Model addInstanceGroups(array $args = array()) {@command Emr AddInstanceGroups} * @method Model addJobFlowSteps(array $args = array()) {@command Emr AddJobFlowSteps} + * @method Model addTags(array $args = array()) {@command Emr AddTags} * @method Model describeCluster(array $args = array()) {@command Emr DescribeCluster} * @method Model describeJobFlows(array $args = array()) {@command Emr DescribeJobFlows} * @method Model describeStep(array $args = array()) {@command Emr DescribeStep} @@ -38,6 +39,7 @@ use Guzzle\Service\Resource\ResourceIteratorInterface; * @method Model listInstances(array $args = array()) {@command Emr ListInstances} * @method Model listSteps(array $args = array()) {@command Emr ListSteps} * @method Model modifyInstanceGroups(array $args = array()) {@command Emr ModifyInstanceGroups} + * @method Model removeTags(array $args = array()) {@command Emr RemoveTags} * @method Model runJobFlow(array $args = array()) {@command Emr RunJobFlow} * @method Model setTerminationProtection(array $args = array()) {@command Emr SetTerminationProtection} * @method Model setVisibleToAllUsers(array $args = array()) {@command Emr SetVisibleToAllUsers} @@ -49,8 +51,8 @@ use Guzzle\Service\Resource\ResourceIteratorInterface; * @method ResourceIteratorInterface getListInstancesIterator(array $args = array()) The input array uses the parameters of the ListInstances operation * @method ResourceIteratorInterface getListStepsIterator(array $args = array()) The input array uses the parameters of the ListSteps operation * - * @link http://docs.aws.amazon.com/aws-sdk-php/guide/latest/service-emr.html User guide - * @link http://docs.aws.amazon.com/aws-sdk-php/latest/class-Aws.Emr.EmrClient.html API docs + * @link http://docs.aws.amazon.com/aws-sdk-php/v2/guide/service-emr.html User guide + * @link http://docs.aws.amazon.com/aws-sdk-php/v2/api/class-Aws.Emr.EmrClient.html API docs */ class EmrClient extends AbstractClient { @@ -62,7 +64,7 @@ class EmrClient extends AbstractClient * @param array|Collection $config Client configuration data * * @return self - * @see \Aws\Common\Client\DefaultClient for a list of available configuration options + * @link http://docs.aws.amazon.com/aws-sdk-php/v2/guide/configuration.html#client-configuration-options */ public static function factory($config = array()) { diff --git a/inc/aws-sdk/Aws/Emr/Resources/emr-2009-03-31.php b/inc/aws-sdk/Aws/Emr/Resources/emr-2009-03-31.php index 11b443a..7933861 100755 --- a/inc/aws-sdk/Aws/Emr/Resources/emr-2009-03-31.php +++ b/inc/aws-sdk/Aws/Emr/Resources/emr-2009-03-31.php @@ -66,6 +66,11 @@ return array ( 'https' => true, 'hostname' => 'elasticmapreduce.sa-east-1.amazonaws.com', ), + 'cn-north-1' => array( + 'http' => true, + 'https' => true, + 'hostname' => 'elasticmapreduce.cn-north-1.amazonaws.com.cn', + ), 'us-gov-west-1' => array( 'http' => true, 'https' => true, @@ -108,19 +113,10 @@ return array ( ), 'Market' => array( 'type' => 'string', - 'enum' => array( - 'ON_DEMAND', - 'SPOT', - ), ), 'InstanceRole' => array( 'required' => true, 'type' => 'string', - 'enum' => array( - 'MASTER', - 'CORE', - 'TASK', - ), ), 'BidPrice' => array( 'type' => 'string', @@ -195,12 +191,6 @@ return array ( ), 'ActionOnFailure' => array( 'type' => 'string', - 'enum' => array( - 'TERMINATE_JOB_FLOW', - 'TERMINATE_CLUSTER', - 'CANCEL_AND_WAIT', - 'CONTINUE', - ), ), 'HadoopJarStep' => array( 'required' => true, @@ -253,6 +243,61 @@ return array ( ), ), ), + 'AddTags' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'EmptyOutput', + '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' => 'ElasticMapReduce.AddTags', + ), + 'ResourceId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + ), + 'Tags' => array( + 'required' => true, + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'Tag', + 'type' => 'object', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + ), + 'Value' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'This exception occurs when there is an internal failure in the EMR service.', + 'class' => 'InternalServerException', + ), + array( + 'reason' => 'This exception occurs when there is something wrong with user input.', + 'class' => 'InvalidRequestException', + ), + ), + ), 'DescribeCluster' => array( 'httpMethod' => 'POST', 'uri' => '/', @@ -275,10 +320,9 @@ return array ( 'default' => 'ElasticMapReduce.DescribeCluster', ), 'ClusterId' => array( + 'required' => true, 'type' => 'string', 'location' => 'json', - 'minLength' => 1, - 'maxLength' => 64, ), ), 'errorResponses' => array( @@ -346,16 +390,6 @@ return array ( 'items' => array( 'name' => 'JobFlowExecutionState', 'type' => 'string', - 'enum' => array( - 'STARTING', - 'BOOTSTRAPPING', - 'RUNNING', - 'WAITING', - 'SHUTTING_DOWN', - 'TERMINATED', - 'COMPLETED', - 'FAILED', - ), ), ), ), @@ -388,16 +422,14 @@ return array ( 'default' => 'ElasticMapReduce.DescribeStep', ), 'ClusterId' => array( + 'required' => true, 'type' => 'string', 'location' => 'json', - 'minLength' => 1, - 'maxLength' => 64, ), 'StepId' => array( + 'required' => true, 'type' => 'string', 'location' => 'json', - 'minLength' => 1, - 'maxLength' => 64, ), ), 'errorResponses' => array( @@ -433,16 +465,13 @@ return array ( 'default' => 'ElasticMapReduce.ListBootstrapActions', ), 'ClusterId' => array( + 'required' => true, 'type' => 'string', 'location' => 'json', - 'minLength' => 1, - 'maxLength' => 64, ), 'Marker' => array( 'type' => 'string', 'location' => 'json', - 'minLength' => 1, - 'maxLength' => 512, ), ), 'errorResponses' => array( @@ -501,22 +530,11 @@ return array ( 'items' => array( 'name' => 'ClusterState', 'type' => 'string', - 'enum' => array( - 'STARTING', - 'BOOTSTRAPPING', - 'RUNNING', - 'WAITING', - 'TERMINATING', - 'TERMINATED', - 'TERMINATED_WITH_ERRORS', - ), ), ), 'Marker' => array( 'type' => 'string', 'location' => 'json', - 'minLength' => 1, - 'maxLength' => 512, ), ), 'errorResponses' => array( @@ -552,16 +570,13 @@ return array ( 'default' => 'ElasticMapReduce.ListInstanceGroups', ), 'ClusterId' => array( + 'required' => true, 'type' => 'string', 'location' => 'json', - 'minLength' => 1, - 'maxLength' => 64, ), 'Marker' => array( 'type' => 'string', 'location' => 'json', - 'minLength' => 1, - 'maxLength' => 512, ), ), 'errorResponses' => array( @@ -597,16 +612,13 @@ return array ( 'default' => 'ElasticMapReduce.ListInstances', ), 'ClusterId' => array( + 'required' => true, 'type' => 'string', 'location' => 'json', - 'minLength' => 1, - 'maxLength' => 64, ), 'InstanceGroupId' => array( 'type' => 'string', 'location' => 'json', - 'minLength' => 1, - 'maxLength' => 64, ), 'InstanceGroupTypes' => array( 'type' => 'array', @@ -614,18 +626,11 @@ return array ( 'items' => array( 'name' => 'InstanceGroupType', 'type' => 'string', - 'enum' => array( - 'MASTER', - 'CORE', - 'TASK', - ), ), ), 'Marker' => array( 'type' => 'string', 'location' => 'json', - 'minLength' => 1, - 'maxLength' => 512, ), ), 'errorResponses' => array( @@ -661,10 +666,9 @@ return array ( 'default' => 'ElasticMapReduce.ListSteps', ), 'ClusterId' => array( + 'required' => true, 'type' => 'string', 'location' => 'json', - 'minLength' => 1, - 'maxLength' => 64, ), 'StepStates' => array( 'type' => 'array', @@ -672,21 +676,20 @@ return array ( 'items' => array( 'name' => 'StepState', 'type' => 'string', - 'enum' => array( - 'PENDING', - 'RUNNING', - 'COMPLETED', - 'CANCELLED', - 'FAILED', - 'INTERRUPTED', - ), + ), + ), + 'StepIds' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'XmlString', + 'type' => 'string', + 'maxLength' => 10280, ), ), 'Marker' => array( 'type' => 'string', 'location' => 'json', - 'minLength' => 1, - 'maxLength' => 512, ), ), 'errorResponses' => array( @@ -741,8 +744,6 @@ return array ( 'items' => array( 'name' => 'InstanceId', 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 64, ), ), ), @@ -756,6 +757,53 @@ return array ( ), ), ), + 'RemoveTags' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'EmptyOutput', + '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' => 'ElasticMapReduce.RemoveTags', + ), + 'ResourceId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + ), + 'TagKeys' => array( + 'required' => true, + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'String', + 'type' => 'string', + ), + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'This exception occurs when there is an internal failure in the EMR service.', + 'class' => 'InternalServerException', + ), + array( + 'reason' => 'This exception occurs when there is something wrong with user input.', + 'class' => 'InvalidRequestException', + ), + ), + ), 'RunJobFlow' => array( 'httpMethod' => 'POST', 'uri' => '/', @@ -828,19 +876,10 @@ return array ( ), 'Market' => array( 'type' => 'string', - 'enum' => array( - 'ON_DEMAND', - 'SPOT', - ), ), 'InstanceRole' => array( 'required' => true, 'type' => 'string', - 'enum' => array( - 'MASTER', - 'CORE', - 'TASK', - ), ), 'BidPrice' => array( 'type' => 'string', @@ -889,6 +928,30 @@ return array ( 'type' => 'string', 'maxLength' => 256, ), + 'EmrManagedMasterSecurityGroup' => array( + 'type' => 'string', + 'maxLength' => 256, + ), + 'EmrManagedSlaveSecurityGroup' => array( + 'type' => 'string', + 'maxLength' => 256, + ), + 'AdditionalMasterSecurityGroups' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'XmlStringMaxLen256', + 'type' => 'string', + 'maxLength' => 256, + ), + ), + 'AdditionalSlaveSecurityGroups' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'XmlStringMaxLen256', + 'type' => 'string', + 'maxLength' => 256, + ), + ), ), ), 'Steps' => array( @@ -905,12 +968,6 @@ return array ( ), 'ActionOnFailure' => array( 'type' => 'string', - 'enum' => array( - 'TERMINATE_JOB_FLOW', - 'TERMINATE_CLUSTER', - 'CANCEL_AND_WAIT', - 'CONTINUE', - ), ), 'HadoopJarStep' => array( 'required' => true, @@ -1030,6 +1087,27 @@ return array ( 'location' => 'json', 'maxLength' => 10280, ), + 'ServiceRole' => array( + 'type' => 'string', + 'location' => 'json', + 'maxLength' => 10280, + ), + 'Tags' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'Tag', + 'type' => 'object', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + ), + 'Value' => array( + 'type' => 'string', + ), + ), + ), + ), ), 'errorResponses' => array( array( @@ -1201,6 +1279,10 @@ return array ( ), ), ), + 'EmptyOutput' => array( + 'type' => 'object', + 'additionalProperties' => true, + ), 'DescribeClusterOutput' => array( 'type' => 'object', 'additionalProperties' => true, @@ -1263,6 +1345,26 @@ return array ( 'IamInstanceProfile' => array( 'type' => 'string', ), + 'EmrManagedMasterSecurityGroup' => array( + 'type' => 'string', + ), + 'EmrManagedSlaveSecurityGroup' => array( + 'type' => 'string', + ), + 'AdditionalMasterSecurityGroups' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'String', + 'type' => 'string', + ), + ), + 'AdditionalSlaveSecurityGroups' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'String', + 'type' => 'string', + ), + ), ), ), 'LogUri' => array( @@ -1311,6 +1413,30 @@ return array ( ), ), ), + 'Tags' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Tag', + 'type' => 'object', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + ), + 'Value' => array( + 'type' => 'string', + ), + ), + ), + ), + 'ServiceRole' => array( + 'type' => 'string', + ), + 'NormalizedInstanceHours' => array( + 'type' => 'numeric', + ), + 'MasterPublicDnsName' => array( + 'type' => 'string', + ), ), ), ), @@ -1576,6 +1702,9 @@ return array ( 'JobFlowRole' => array( 'type' => 'string', ), + 'ServiceRole' => array( + 'type' => 'string', + ), ), ), ), @@ -1742,6 +1871,9 @@ return array ( ), ), ), + 'NormalizedInstanceHours' => array( + 'type' => 'numeric', + ), ), ), ), @@ -1916,6 +2048,33 @@ return array ( 'Name' => array( 'type' => 'string', ), + 'Config' => array( + 'type' => 'object', + 'properties' => array( + 'Jar' => array( + 'type' => 'string', + ), + 'Properties' => array( + 'type' => 'object', + 'additionalProperties' => array( + 'type' => 'string', + ), + ), + 'MainClass' => array( + 'type' => 'string', + ), + 'Args' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'String', + 'type' => 'string', + ), + ), + ), + ), + 'ActionOnFailure' => array( + 'type' => 'string', + ), 'Status' => array( 'type' => 'object', 'properties' => array( @@ -1958,10 +2117,6 @@ return array ( ), ), ), - 'EmptyOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - ), 'RunJobFlowOutput' => array( 'type' => 'object', 'additionalProperties' => true, @@ -1974,35 +2129,33 @@ return array ( ), ), 'iterators' => array( - 'operations' => array( - 'DescribeJobFlows' => array( - 'result_key' => 'JobFlows', - ), - 'ListBootstrapActions' => array( - 'token_param' => 'Marker', - 'token_key' => 'Marker', - 'result_key' => 'BootstrapActions', - ), - 'ListClusters' => array( - 'token_param' => 'Marker', - 'token_key' => 'Marker', - 'result_key' => 'Clusters', - ), - 'ListInstanceGroups' => array( - 'token_param' => 'Marker', - 'token_key' => 'Marker', - 'result_key' => 'InstanceGroups', - ), - 'ListInstances' => array( - 'token_param' => 'Marker', - 'token_key' => 'Marker', - 'result_key' => 'Instances', - ), - 'ListSteps' => array( - 'token_param' => 'Marker', - 'token_key' => 'Marker', - 'result_key' => 'Steps', - ), + 'DescribeJobFlows' => array( + 'result_key' => 'JobFlows', + ), + 'ListBootstrapActions' => array( + 'input_token' => 'Marker', + 'output_token' => 'Marker', + 'result_key' => 'BootstrapActions', + ), + 'ListClusters' => array( + 'input_token' => 'Marker', + 'output_token' => 'Marker', + 'result_key' => 'Clusters', + ), + 'ListInstanceGroups' => array( + 'input_token' => 'Marker', + 'output_token' => 'Marker', + 'result_key' => 'InstanceGroups', + ), + 'ListInstances' => array( + 'input_token' => 'Marker', + 'output_token' => 'Marker', + 'result_key' => 'Instances', + ), + 'ListSteps' => array( + 'input_token' => 'Marker', + 'output_token' => 'Marker', + 'result_key' => 'Steps', ), ), ); diff --git a/inc/aws-sdk/Aws/Glacier/GlacierClient.php b/inc/aws-sdk/Aws/Glacier/GlacierClient.php index df7c767..4c77734 100755 --- a/inc/aws-sdk/Aws/Glacier/GlacierClient.php +++ b/inc/aws-sdk/Aws/Glacier/GlacierClient.php @@ -33,10 +33,13 @@ use Guzzle\Service\Resource\ResourceIteratorInterface; * @method Model createVault(array $args = array()) {@command Glacier CreateVault} * @method Model deleteArchive(array $args = array()) {@command Glacier DeleteArchive} * @method Model deleteVault(array $args = array()) {@command Glacier DeleteVault} + * @method Model deleteVaultAccessPolicy(array $args = array()) {@command Glacier DeleteVaultAccessPolicy} * @method Model deleteVaultNotifications(array $args = array()) {@command Glacier DeleteVaultNotifications} * @method Model describeJob(array $args = array()) {@command Glacier DescribeJob} * @method Model describeVault(array $args = array()) {@command Glacier DescribeVault} + * @method Model getDataRetrievalPolicy(array $args = array()) {@command Glacier GetDataRetrievalPolicy} * @method Model getJobOutput(array $args = array()) {@command Glacier GetJobOutput} + * @method Model getVaultAccessPolicy(array $args = array()) {@command Glacier GetVaultAccessPolicy} * @method Model getVaultNotifications(array $args = array()) {@command Glacier GetVaultNotifications} * @method Model initiateJob(array $args = array()) {@command Glacier InitiateJob} * @method Model initiateMultipartUpload(array $args = array()) {@command Glacier InitiateMultipartUpload} @@ -44,18 +47,20 @@ use Guzzle\Service\Resource\ResourceIteratorInterface; * @method Model listMultipartUploads(array $args = array()) {@command Glacier ListMultipartUploads} * @method Model listParts(array $args = array()) {@command Glacier ListParts} * @method Model listVaults(array $args = array()) {@command Glacier ListVaults} + * @method Model setDataRetrievalPolicy(array $args = array()) {@command Glacier SetDataRetrievalPolicy} + * @method Model setVaultAccessPolicy(array $args = array()) {@command Glacier SetVaultAccessPolicy} * @method Model setVaultNotifications(array $args = array()) {@command Glacier SetVaultNotifications} * @method Model uploadArchive(array $args = array()) {@command Glacier UploadArchive} * @method Model uploadMultipartPart(array $args = array()) {@command Glacier UploadMultipartPart} - * @method waitUntilVaultExists(array $input) Wait until a vault can be accessed. The input array uses the parameters of the DescribeVault operation and waiter specific settings - * @method waitUntilVaultNotExists(array $input) Wait until a vault is deleted. The input array uses the parameters of the DescribeVault operation and waiter specific settings + * @method waitUntilVaultExists(array $input) The input array uses the parameters of the DescribeVault operation and waiter specific settings + * @method waitUntilVaultNotExists(array $input) The input array uses the parameters of the DescribeVault operation and waiter specific settings * @method ResourceIteratorInterface getListJobsIterator(array $args = array()) The input array uses the parameters of the ListJobs operation * @method ResourceIteratorInterface getListMultipartUploadsIterator(array $args = array()) The input array uses the parameters of the ListMultipartUploads operation * @method ResourceIteratorInterface getListPartsIterator(array $args = array()) The input array uses the parameters of the ListParts operation * @method ResourceIteratorInterface getListVaultsIterator(array $args = array()) The input array uses the parameters of the ListVaults operation * - * @link http://docs.aws.amazon.com/aws-sdk-php/guide/latest/service-glacier.html User guide - * @link http://docs.aws.amazon.com/aws-sdk-php/latest/class-Aws.Glacier.GlacierClient.html API docs + * @link http://docs.aws.amazon.com/aws-sdk-php/v2/guide/service-glacier.html User guide + * @link http://docs.aws.amazon.com/aws-sdk-php/v2/api/class-Aws.Glacier.GlacierClient.html API docs */ class GlacierClient extends AbstractClient { @@ -66,8 +71,8 @@ class GlacierClient extends AbstractClient * * @param array|Collection $config Client configuration data * - * @return self - * @see \Aws\Common\Client\DefaultClient for a list of available configuration options + * @return GlacierClient + * @link http://docs.aws.amazon.com/aws-sdk-php/v2/guide/configuration.html#client-configuration-options */ public static function factory($config = array()) { @@ -84,25 +89,6 @@ class GlacierClient extends AbstractClient ) )) ->setExceptionParser(new JsonRestExceptionParser()) - ->setIteratorsConfig(array( - 'limit_param' => 'limit', - 'token_param' => 'marker', - 'token_key' => 'Marker', - 'operations' => array( - 'ListJobs' => array( - 'result_key' => 'JobList' - ), - 'ListMultipartUploads' => array( - 'result_key' => 'UploadsList' - ), - 'ListParts' => array( - 'result_key' => 'Parts' - ), - 'ListVaults' => array( - 'result_key' => 'VaultList' - ) - ) - )) ->build(); // Add the Glacier version header required for all operations diff --git a/inc/aws-sdk/Aws/Glacier/GlacierUploadListener.php b/inc/aws-sdk/Aws/Glacier/GlacierUploadListener.php index 2e95cdd..0c6966f 100755 --- a/inc/aws-sdk/Aws/Glacier/GlacierUploadListener.php +++ b/inc/aws-sdk/Aws/Glacier/GlacierUploadListener.php @@ -44,11 +44,11 @@ class GlacierUploadListener implements EventSubscriberInterface */ public function onCommandBeforeSend(Event $event) { - /** @var $command AbstractCommand */ + /** @var AbstractCommand $command */ $command = $event['command']; $contentHash = $command->get('ContentSHA256'); if ($contentHash === true) { - /** @var $request EntityEnclosingRequest */ + /** @var EntityEnclosingRequest $request */ $request = $command->getRequest(); $upload = UploadPartGenerator::createSingleUploadPart($request->getBody()); $request->addHeader('x-amz-content-sha256', $upload->getContentHash()); diff --git a/inc/aws-sdk/Aws/Glacier/Model/MultipartUpload/AbstractTransfer.php b/inc/aws-sdk/Aws/Glacier/Model/MultipartUpload/AbstractTransfer.php index d7b1a74..5ab3ca2 100755 --- a/inc/aws-sdk/Aws/Glacier/Model/MultipartUpload/AbstractTransfer.php +++ b/inc/aws-sdk/Aws/Glacier/Model/MultipartUpload/AbstractTransfer.php @@ -66,7 +66,7 @@ abstract class AbstractTransfer extends CommonAbstractTransfer $params = $this->state->getUploadId()->toParams(); $params[Ua::OPTION] = Ua::MULTIPART_UPLOAD; - /** @var $command OperationCommand */ + /** @var OperationCommand $command */ $command = $this->client->getCommand('AbortMultipartUpload', $params); return $command; @@ -83,7 +83,7 @@ abstract class AbstractTransfer extends CommonAbstractTransfer protected function getCommandForPart(UploadPart $part, $useSourceCopy = false) { // Setup the command with identifying parameters (accountId, vaultName, and uploadId) - /** @var $command OperationCommand */ + /** @var OperationCommand $command */ $command = $this->client->getCommand('UploadMultipartPart', $this->state->getUploadId()->toParams()); $command->set(Ua::OPTION, Ua::MULTIPART_UPLOAD); diff --git a/inc/aws-sdk/Aws/Glacier/Model/MultipartUpload/ParallelTransfer.php b/inc/aws-sdk/Aws/Glacier/Model/MultipartUpload/ParallelTransfer.php index 8f6c0e0..688949c 100755 --- a/inc/aws-sdk/Aws/Glacier/Model/MultipartUpload/ParallelTransfer.php +++ b/inc/aws-sdk/Aws/Glacier/Model/MultipartUpload/ParallelTransfer.php @@ -45,13 +45,13 @@ class ParallelTransfer extends AbstractTransfer */ protected function transfer() { - /** @var $parts UploadPartGenerator */ + /** @var UploadPartGenerator $parts */ $parts = $this->state->getPartGenerator(); $chunkSize = min($this->options['concurrency'], count($parts)); $partSets = new ChunkedIterator($parts, $chunkSize); foreach ($partSets as $partSet) { - /** @var $part UploadPart */ + /** @var UploadPart $part */ $commands = array(); foreach ($partSet as $index => $part) { $command = $this->getCommandForPart($part, (bool) $index)->set('part', $part); @@ -65,7 +65,7 @@ class ParallelTransfer extends AbstractTransfer } // Execute each command, iterate over the results, and add to the transfer state - /** @var $command \Guzzle\Service\Command\OperationCommand */ + /** @var \Guzzle\Service\Command\OperationCommand $command */ foreach ($this->client->execute($commands) as $command) { $this->state->addPart($command->get('part')); $this->dispatch(self::AFTER_PART_UPLOAD, $this->getEventData($command)); diff --git a/inc/aws-sdk/Aws/Glacier/Model/MultipartUpload/SerialTransfer.php b/inc/aws-sdk/Aws/Glacier/Model/MultipartUpload/SerialTransfer.php index f23dfb1..ed78ceb 100755 --- a/inc/aws-sdk/Aws/Glacier/Model/MultipartUpload/SerialTransfer.php +++ b/inc/aws-sdk/Aws/Glacier/Model/MultipartUpload/SerialTransfer.php @@ -26,10 +26,10 @@ class SerialTransfer extends AbstractTransfer */ protected function transfer() { - /** @var $partGenerator UploadPartGenerator */ + /** @var UploadPartGenerator $partGenerator */ $partGenerator = $this->state->getPartGenerator(); - /** @var $part UploadPart */ + /** @var UploadPart $part */ foreach ($partGenerator as $part) { $command = $this->getCommandForPart($part); diff --git a/inc/aws-sdk/Aws/Glacier/Model/MultipartUpload/TransferState.php b/inc/aws-sdk/Aws/Glacier/Model/MultipartUpload/TransferState.php index a4abeb2..1d8e6a5 100755 --- a/inc/aws-sdk/Aws/Glacier/Model/MultipartUpload/TransferState.php +++ b/inc/aws-sdk/Aws/Glacier/Model/MultipartUpload/TransferState.php @@ -38,7 +38,7 @@ class TransferState extends AbstractTransferState */ public static function fromUploadId(AwsClientInterface $client, UploadIdInterface $uploadId) { - $transferState = new self($uploadId); + $transferState = new static($uploadId); $listParts = $client->getIterator('ListParts', $uploadId->toParams()); foreach ($listParts as $part) { @@ -60,7 +60,7 @@ class TransferState extends AbstractTransferState /** * @param UploadPartGenerator $partGenerator Glacier upload helper object * - * @return self + * @return $this */ public function setPartGenerator(UploadPartGenerator $partGenerator) { diff --git a/inc/aws-sdk/Aws/Glacier/Model/MultipartUpload/UploadBuilder.php b/inc/aws-sdk/Aws/Glacier/Model/MultipartUpload/UploadBuilder.php index df07baa..607225b 100755 --- a/inc/aws-sdk/Aws/Glacier/Model/MultipartUpload/UploadBuilder.php +++ b/inc/aws-sdk/Aws/Glacier/Model/MultipartUpload/UploadBuilder.php @@ -16,12 +16,10 @@ namespace Aws\Glacier\Model\MultipartUpload; -use Aws\Common\Enum\Size; use Aws\Common\Enum\UaString as Ua; use Aws\Common\Exception\InvalidArgumentException; use Aws\Common\Model\MultipartUpload\AbstractUploadBuilder; use Aws\Common\Model\MultipartUpload\TransferStateInterface as State; -use Aws\Glacier\Model\MultipartUpload\UploadPartGenerator; /** * Easily create a multipart uploader used to quickly and reliably upload a @@ -64,7 +62,7 @@ class UploadBuilder extends AbstractUploadBuilder * * @param string $accountId ID of the account * - * @return self + * @return $this */ public function setAccountId($accountId) { @@ -78,7 +76,7 @@ class UploadBuilder extends AbstractUploadBuilder * * @param string $vaultName Name of the vault * - * @return self + * @return $this */ public function setVaultName($vaultName) { @@ -92,7 +90,7 @@ class UploadBuilder extends AbstractUploadBuilder * * @param int $partSize Upload part size * - * @return self + * @return $this */ public function setPartSize($partSize) { @@ -106,7 +104,7 @@ class UploadBuilder extends AbstractUploadBuilder * * @param string $archiveDescription Archive description * - * @return self + * @return $this */ public function setArchiveDescription($archiveDescription) { @@ -121,7 +119,7 @@ class UploadBuilder extends AbstractUploadBuilder * * @param int $concurrency Concurrency level * - * @return self + * @return $this */ public function setConcurrency($concurrency) { @@ -135,7 +133,7 @@ class UploadBuilder extends AbstractUploadBuilder * * @param UploadPartGenerator $partGenerator Glacier upload helper object * - * @return self + * @return $this */ public function setPartGenerator(UploadPartGenerator $partGenerator) { @@ -169,7 +167,7 @@ class UploadBuilder extends AbstractUploadBuilder if (!$this->partGenerator) { throw new InvalidArgumentException('You must provide an UploadPartGenerator when resuming an upload.'); } - /** @var $state \Aws\Glacier\Model\MultipartUpload\TransferState */ + /** @var TransferState $state */ $this->state = TransferState::fromUploadId($this->client, UploadId::fromParams(array( 'accountId' => $this->accountId, 'vaultName' => $this->vaultName, diff --git a/inc/aws-sdk/Aws/Glacier/Model/MultipartUpload/UploadPartContext.php b/inc/aws-sdk/Aws/Glacier/Model/MultipartUpload/UploadPartContext.php index 0706609..47076b9 100755 --- a/inc/aws-sdk/Aws/Glacier/Model/MultipartUpload/UploadPartContext.php +++ b/inc/aws-sdk/Aws/Glacier/Model/MultipartUpload/UploadPartContext.php @@ -74,7 +74,7 @@ class UploadPartContext * * @param string $data Data to add to the context * - * @return self + * @return $this * @throws LogicException when the context is already finalized */ public function addData($data) diff --git a/inc/aws-sdk/Aws/Glacier/Resources/glacier-2012-06-01.php b/inc/aws-sdk/Aws/Glacier/Resources/glacier-2012-06-01.php index 4680cb0..ae680bf 100755 --- a/inc/aws-sdk/Aws/Glacier/Resources/glacier-2012-06-01.php +++ b/inc/aws-sdk/Aws/Glacier/Resources/glacier-2012-06-01.php @@ -52,6 +52,11 @@ return array ( 'https' => true, 'hostname' => 'glacier.ap-northeast-1.amazonaws.com', ), + 'cn-north-1' => array( + 'http' => true, + 'https' => true, + 'hostname' => 'glacier.cn-north-1.amazonaws.com.cn', + ), ), 'operations' => array( 'AbortMultipartUpload' => array( @@ -264,6 +269,43 @@ return array ( ), ), ), + 'DeleteVaultAccessPolicy' => array( + 'httpMethod' => 'DELETE', + 'uri' => '/{accountId}/vaults/{vaultName}/access-policy', + 'class' => 'Guzzle\\Service\\Command\\OperationCommand', + 'responseClass' => 'EmptyOutput', + 'responseType' => 'model', + 'parameters' => array( + 'accountId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'uri', + ), + 'vaultName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'uri', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'Returned if the specified resource, such as a vault, upload ID, or job ID, does not exist.', + 'class' => 'ResourceNotFoundException', + ), + array( + 'reason' => 'Returned if a parameter of the request is incorrectly specified.', + 'class' => 'InvalidParameterValueException', + ), + array( + 'reason' => 'Returned if a required header or parameter is missing from the request.', + 'class' => 'MissingParameterValueException', + ), + array( + 'reason' => 'Returned if the service cannot complete the request.', + 'class' => 'ServiceUnavailableException', + ), + ), + ), 'DeleteVaultNotifications' => array( 'httpMethod' => 'DELETE', 'uri' => '/{accountId}/vaults/{vaultName}/notification-configuration', @@ -380,6 +422,34 @@ return array ( ), ), ), + 'GetDataRetrievalPolicy' => array( + 'httpMethod' => 'GET', + 'uri' => '/{accountId}/policies/data-retrieval', + 'class' => 'Guzzle\\Service\\Command\\OperationCommand', + 'responseClass' => 'GetDataRetrievalPolicyOutput', + 'responseType' => 'model', + 'parameters' => array( + 'accountId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'uri', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'Returned if a parameter of the request is incorrectly specified.', + 'class' => 'InvalidParameterValueException', + ), + array( + 'reason' => 'Returned if a required header or parameter is missing from the request.', + 'class' => 'MissingParameterValueException', + ), + array( + 'reason' => 'Returned if the service cannot complete the request.', + 'class' => 'ServiceUnavailableException', + ), + ), + ), 'GetJobOutput' => array( 'httpMethod' => 'GET', 'uri' => '/{accountId}/vaults/{vaultName}/jobs/{jobId}/output', @@ -430,6 +500,43 @@ return array ( ), ), ), + 'GetVaultAccessPolicy' => array( + 'httpMethod' => 'GET', + 'uri' => '/{accountId}/vaults/{vaultName}/access-policy', + 'class' => 'Guzzle\\Service\\Command\\OperationCommand', + 'responseClass' => 'GetVaultAccessPolicyOutput', + 'responseType' => 'model', + 'parameters' => array( + 'accountId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'uri', + ), + 'vaultName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'uri', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'Returned if the specified resource, such as a vault, upload ID, or job ID, does not exist.', + 'class' => 'ResourceNotFoundException', + ), + array( + 'reason' => 'Returned if a parameter of the request is incorrectly specified.', + 'class' => 'InvalidParameterValueException', + ), + array( + 'reason' => 'Returned if a required header or parameter is missing from the request.', + 'class' => 'MissingParameterValueException', + ), + array( + 'reason' => 'Returned if the service cannot complete the request.', + 'class' => 'ServiceUnavailableException', + ), + ), + ), 'GetVaultNotifications' => array( 'httpMethod' => 'GET', 'uri' => '/{accountId}/vaults/{vaultName}/notification-configuration', @@ -508,12 +615,34 @@ return array ( 'type' => 'string', 'location' => 'json', ), + 'InventoryRetrievalParameters' => array( + 'type' => 'object', + 'location' => 'json', + 'properties' => array( + 'StartDate' => array( + 'type' => 'string', + ), + 'EndDate' => array( + 'type' => 'string', + ), + 'Limit' => array( + 'type' => 'string', + ), + 'Marker' => array( + 'type' => 'string', + ), + ), + ), ), 'errorResponses' => array( array( 'reason' => 'Returned if the specified resource, such as a vault, upload ID, or job ID, does not exist.', 'class' => 'ResourceNotFoundException', ), + array( + 'reason' => 'Returned if a retrieval job would exceed the current data policy\'s retrieval rate limit. For more information about data retrieval policies,', + 'class' => 'PolicyEnforcedException', + ), array( 'reason' => 'Returned if a parameter of the request is incorrectly specified.', 'class' => 'InvalidParameterValueException', @@ -763,6 +892,96 @@ return array ( ), ), ), + 'SetDataRetrievalPolicy' => array( + 'httpMethod' => 'PUT', + 'uri' => '/{accountId}/policies/data-retrieval', + 'class' => 'Guzzle\\Service\\Command\\OperationCommand', + 'responseClass' => 'EmptyOutput', + 'responseType' => 'model', + 'parameters' => array( + 'accountId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'uri', + ), + 'Policy' => array( + 'type' => 'object', + 'location' => 'json', + 'properties' => array( + 'Rules' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'DataRetrievalRule', + 'type' => 'object', + 'properties' => array( + 'Strategy' => array( + 'type' => 'string', + ), + 'BytesPerHour' => array( + 'type' => 'numeric', + ), + ), + ), + ), + ), + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'Returned if a parameter of the request is incorrectly specified.', + 'class' => 'InvalidParameterValueException', + ), + array( + 'reason' => 'Returned if a required header or parameter is missing from the request.', + 'class' => 'MissingParameterValueException', + ), + array( + 'reason' => 'Returned if the service cannot complete the request.', + 'class' => 'ServiceUnavailableException', + ), + ), + ), + 'SetVaultAccessPolicy' => array( + 'httpMethod' => 'PUT', + 'uri' => '/{accountId}/vaults/{vaultName}/access-policy', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'EmptyOutput', + 'responseType' => 'model', + 'parameters' => array( + 'accountId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'uri', + ), + 'vaultName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'uri', + ), + 'Policy' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'Returned if the specified resource, such as a vault, upload ID, or job ID, does not exist.', + 'class' => 'ResourceNotFoundException', + ), + array( + 'reason' => 'Returned if a parameter of the request is incorrectly specified.', + 'class' => 'InvalidParameterValueException', + ), + array( + 'reason' => 'Returned if a required header or parameter is missing from the request.', + 'class' => 'MissingParameterValueException', + ), + array( + 'reason' => 'Returned if the service cannot complete the request.', + 'class' => 'ServiceUnavailableException', + ), + ), + ), 'SetVaultNotifications' => array( 'httpMethod' => 'PUT', 'uri' => '/{accountId}/vaults/{vaultName}/notification-configuration', @@ -1045,6 +1264,27 @@ return array ( 'type' => 'string', 'location' => 'json', ), + 'InventoryRetrievalParameters' => array( + 'type' => 'object', + 'location' => 'json', + 'properties' => array( + 'Format' => array( + 'type' => 'string', + ), + 'StartDate' => array( + 'type' => 'string', + ), + 'EndDate' => array( + 'type' => 'string', + ), + 'Limit' => array( + 'type' => 'string', + ), + 'Marker' => array( + 'type' => 'string', + ), + ), + ), ), ), 'DescribeVaultOutput' => array( @@ -1077,6 +1317,33 @@ return array ( ), ), ), + 'GetDataRetrievalPolicyOutput' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'Policy' => array( + 'type' => 'object', + 'location' => 'json', + 'properties' => array( + 'Rules' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'DataRetrievalRule', + 'type' => 'object', + 'properties' => array( + 'Strategy' => array( + 'type' => 'string', + ), + 'BytesPerHour' => array( + 'type' => 'numeric', + ), + ), + ), + ), + ), + ), + ), + ), 'GetJobOutputOutput' => array( 'type' => 'object', 'additionalProperties' => true, @@ -1117,6 +1384,16 @@ return array ( ), ), ), + 'GetVaultAccessPolicyOutput' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'Policy' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + ), 'GetVaultNotificationsOutput' => array( 'type' => 'object', 'additionalProperties' => true, @@ -1226,6 +1503,26 @@ return array ( 'RetrievalByteRange' => array( 'type' => 'string', ), + 'InventoryRetrievalParameters' => array( + 'type' => 'object', + 'properties' => array( + 'Format' => array( + 'type' => 'string', + ), + 'StartDate' => array( + 'type' => 'string', + ), + 'EndDate' => array( + 'type' => 'string', + ), + 'Limit' => array( + 'type' => 'string', + ), + 'Marker' => array( + 'type' => 'string', + ), + ), + ), ), ), ), @@ -1366,6 +1663,32 @@ return array ( ), ), ), + 'iterators' => array( + 'ListJobs' => array( + 'input_token' => 'marker', + 'output_token' => 'Marker', + 'limit_key' => 'limit', + 'result_key' => 'JobList', + ), + 'ListMultipartUploads' => array( + 'input_token' => 'marker', + 'output_token' => 'Marker', + 'limit_key' => 'limit', + 'result_key' => 'UploadsList', + ), + 'ListParts' => array( + 'input_token' => 'marker', + 'output_token' => 'Marker', + 'limit_key' => 'limit', + 'result_key' => 'Parts', + ), + 'ListVaults' => array( + 'input_token' => 'marker', + 'output_token' => 'Marker', + 'limit_key' => 'limit', + 'result_key' => 'VaultList', + ), + ), 'waiters' => array( '__default__' => array( 'interval' => 3, diff --git a/inc/aws-sdk/Aws/Iam/IamClient.php b/inc/aws-sdk/Aws/Iam/IamClient.php index b2d63e0..af3ab64 100755 --- a/inc/aws-sdk/Aws/Iam/IamClient.php +++ b/inc/aws-sdk/Aws/Iam/IamClient.php @@ -26,14 +26,21 @@ use Guzzle\Service\Resource\ResourceIteratorInterface; /** * Client to interact with AWS Identity and Access Management * + * @method Model addClientIDToOpenIDConnectProvider(array $args = array()) {@command Iam AddClientIDToOpenIDConnectProvider} * @method Model addRoleToInstanceProfile(array $args = array()) {@command Iam AddRoleToInstanceProfile} * @method Model addUserToGroup(array $args = array()) {@command Iam AddUserToGroup} + * @method Model attachGroupPolicy(array $args = array()) {@command Iam AttachGroupPolicy} + * @method Model attachRolePolicy(array $args = array()) {@command Iam AttachRolePolicy} + * @method Model attachUserPolicy(array $args = array()) {@command Iam AttachUserPolicy} * @method Model changePassword(array $args = array()) {@command Iam ChangePassword} * @method Model createAccessKey(array $args = array()) {@command Iam CreateAccessKey} * @method Model createAccountAlias(array $args = array()) {@command Iam CreateAccountAlias} * @method Model createGroup(array $args = array()) {@command Iam CreateGroup} * @method Model createInstanceProfile(array $args = array()) {@command Iam CreateInstanceProfile} * @method Model createLoginProfile(array $args = array()) {@command Iam CreateLoginProfile} + * @method Model createOpenIDConnectProvider(array $args = array()) {@command Iam CreateOpenIDConnectProvider} + * @method Model createPolicy(array $args = array()) {@command Iam CreatePolicy} + * @method Model createPolicyVersion(array $args = array()) {@command Iam CreatePolicyVersion} * @method Model createRole(array $args = array()) {@command Iam CreateRole} * @method Model createSAMLProvider(array $args = array()) {@command Iam CreateSAMLProvider} * @method Model createUser(array $args = array()) {@command Iam CreateUser} @@ -46,6 +53,9 @@ use Guzzle\Service\Resource\ResourceIteratorInterface; * @method Model deleteGroupPolicy(array $args = array()) {@command Iam DeleteGroupPolicy} * @method Model deleteInstanceProfile(array $args = array()) {@command Iam DeleteInstanceProfile} * @method Model deleteLoginProfile(array $args = array()) {@command Iam DeleteLoginProfile} + * @method Model deleteOpenIDConnectProvider(array $args = array()) {@command Iam DeleteOpenIDConnectProvider} + * @method Model deletePolicy(array $args = array()) {@command Iam DeletePolicy} + * @method Model deletePolicyVersion(array $args = array()) {@command Iam DeletePolicyVersion} * @method Model deleteRole(array $args = array()) {@command Iam DeleteRole} * @method Model deleteRolePolicy(array $args = array()) {@command Iam DeleteRolePolicy} * @method Model deleteSAMLProvider(array $args = array()) {@command Iam DeleteSAMLProvider} @@ -54,13 +64,23 @@ use Guzzle\Service\Resource\ResourceIteratorInterface; * @method Model deleteUser(array $args = array()) {@command Iam DeleteUser} * @method Model deleteUserPolicy(array $args = array()) {@command Iam DeleteUserPolicy} * @method Model deleteVirtualMFADevice(array $args = array()) {@command Iam DeleteVirtualMFADevice} + * @method Model detachGroupPolicy(array $args = array()) {@command Iam DetachGroupPolicy} + * @method Model detachRolePolicy(array $args = array()) {@command Iam DetachRolePolicy} + * @method Model detachUserPolicy(array $args = array()) {@command Iam DetachUserPolicy} * @method Model enableMFADevice(array $args = array()) {@command Iam EnableMFADevice} + * @method Model generateCredentialReport(array $args = array()) {@command Iam GenerateCredentialReport} + * @method Model getAccessKeyLastUsed(array $args = array()) {@command Iam GetAccessKeyLastUsed} + * @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} * @method Model getGroup(array $args = array()) {@command Iam GetGroup} * @method Model getGroupPolicy(array $args = array()) {@command Iam GetGroupPolicy} * @method Model getInstanceProfile(array $args = array()) {@command Iam GetInstanceProfile} * @method Model getLoginProfile(array $args = array()) {@command Iam GetLoginProfile} + * @method Model getOpenIDConnectProvider(array $args = array()) {@command Iam GetOpenIDConnectProvider} + * @method Model getPolicy(array $args = array()) {@command Iam GetPolicy} + * @method Model getPolicyVersion(array $args = array()) {@command Iam GetPolicyVersion} * @method Model getRole(array $args = array()) {@command Iam GetRole} * @method Model getRolePolicy(array $args = array()) {@command Iam GetRolePolicy} * @method Model getSAMLProvider(array $args = array()) {@command Iam GetSAMLProvider} @@ -69,12 +89,19 @@ use Guzzle\Service\Resource\ResourceIteratorInterface; * @method Model getUserPolicy(array $args = array()) {@command Iam GetUserPolicy} * @method Model listAccessKeys(array $args = array()) {@command Iam ListAccessKeys} * @method Model listAccountAliases(array $args = array()) {@command Iam ListAccountAliases} + * @method Model listAttachedGroupPolicies(array $args = array()) {@command Iam ListAttachedGroupPolicies} + * @method Model listAttachedRolePolicies(array $args = array()) {@command Iam ListAttachedRolePolicies} + * @method Model listAttachedUserPolicies(array $args = array()) {@command Iam ListAttachedUserPolicies} + * @method Model listEntitiesForPolicy(array $args = array()) {@command Iam ListEntitiesForPolicy} * @method Model listGroupPolicies(array $args = array()) {@command Iam ListGroupPolicies} * @method Model listGroups(array $args = array()) {@command Iam ListGroups} * @method Model listGroupsForUser(array $args = array()) {@command Iam ListGroupsForUser} * @method Model listInstanceProfiles(array $args = array()) {@command Iam ListInstanceProfiles} * @method Model listInstanceProfilesForRole(array $args = array()) {@command Iam ListInstanceProfilesForRole} * @method Model listMFADevices(array $args = array()) {@command Iam ListMFADevices} + * @method Model listOpenIDConnectProviders(array $args = array()) {@command Iam ListOpenIDConnectProviders} + * @method Model listPolicies(array $args = array()) {@command Iam ListPolicies} + * @method Model listPolicyVersions(array $args = array()) {@command Iam ListPolicyVersions} * @method Model listRolePolicies(array $args = array()) {@command Iam ListRolePolicies} * @method Model listRoles(array $args = array()) {@command Iam ListRoles} * @method Model listSAMLProviders(array $args = array()) {@command Iam ListSAMLProviders} @@ -86,20 +113,24 @@ use Guzzle\Service\Resource\ResourceIteratorInterface; * @method Model putGroupPolicy(array $args = array()) {@command Iam PutGroupPolicy} * @method Model putRolePolicy(array $args = array()) {@command Iam PutRolePolicy} * @method Model putUserPolicy(array $args = array()) {@command Iam PutUserPolicy} + * @method Model removeClientIDFromOpenIDConnectProvider(array $args = array()) {@command Iam RemoveClientIDFromOpenIDConnectProvider} * @method Model removeRoleFromInstanceProfile(array $args = array()) {@command Iam RemoveRoleFromInstanceProfile} * @method Model removeUserFromGroup(array $args = array()) {@command Iam RemoveUserFromGroup} * @method Model resyncMFADevice(array $args = array()) {@command Iam ResyncMFADevice} + * @method Model setDefaultPolicyVersion(array $args = array()) {@command Iam SetDefaultPolicyVersion} * @method Model updateAccessKey(array $args = array()) {@command Iam UpdateAccessKey} * @method Model updateAccountPasswordPolicy(array $args = array()) {@command Iam UpdateAccountPasswordPolicy} * @method Model updateAssumeRolePolicy(array $args = array()) {@command Iam UpdateAssumeRolePolicy} * @method Model updateGroup(array $args = array()) {@command Iam UpdateGroup} * @method Model updateLoginProfile(array $args = array()) {@command Iam UpdateLoginProfile} + * @method Model updateOpenIDConnectProviderThumbprint(array $args = array()) {@command Iam UpdateOpenIDConnectProviderThumbprint} * @method Model updateSAMLProvider(array $args = array()) {@command Iam UpdateSAMLProvider} * @method Model updateServerCertificate(array $args = array()) {@command Iam UpdateServerCertificate} * @method Model updateSigningCertificate(array $args = array()) {@command Iam UpdateSigningCertificate} * @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 @@ -118,8 +149,8 @@ use Guzzle\Service\Resource\ResourceIteratorInterface; * @method ResourceIteratorInterface getListUsersIterator(array $args = array()) The input array uses the parameters of the ListUsers operation * @method ResourceIteratorInterface getListVirtualMFADevicesIterator(array $args = array()) The input array uses the parameters of the ListVirtualMFADevices operation * - * @link http://docs.aws.amazon.com/aws-sdk-php/guide/latest/service-iam.html User guide - * @link http://docs.aws.amazon.com/aws-sdk-php/latest/class-Aws.Iam.IamClient.html API docs + * @link http://docs.aws.amazon.com/aws-sdk-php/v2/guide/service-iam.html User guide + * @link http://docs.aws.amazon.com/aws-sdk-php/v2/api/class-Aws.Iam.IamClient.html API docs */ class IamClient extends AbstractClient { @@ -131,7 +162,7 @@ class IamClient extends AbstractClient * @param array|Collection $config Client configuration data * * @return self - * @see \Aws\Common\Client\DefaultClient for a list of available configuration options + * @link http://docs.aws.amazon.com/aws-sdk-php/v2/guide/configuration.html#client-configuration-options */ public static function factory($config = array()) { diff --git a/inc/aws-sdk/Aws/Iam/Resources/iam-2010-05-08.php b/inc/aws-sdk/Aws/Iam/Resources/iam-2010-05-08.php index 9850474..b7ce5bb 100755 --- a/inc/aws-sdk/Aws/Iam/Resources/iam-2010-05-08.php +++ b/inc/aws-sdk/Aws/Iam/Resources/iam-2010-05-08.php @@ -65,6 +65,11 @@ return array ( 'https' => true, 'hostname' => 'iam.amazonaws.com', ), + 'cn-north-1' => array( + 'http' => false, + 'https' => true, + 'hostname' => 'iam.cn-north-1.amazonaws.com.cn', + ), 'us-gov-west-1' => array( 'http' => false, 'https' => true, @@ -72,6 +77,57 @@ return array ( ), ), 'operations' => array( + 'AddClientIDToOpenIDConnectProvider' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'EmptyOutput', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'AddClientIDToOpenIDConnectProvider', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2010-05-08', + ), + 'OpenIDConnectProviderArn' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 20, + 'maxLength' => 2048, + ), + 'ClientID' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 1, + 'maxLength' => 255, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The request was rejected because an invalid or out-of-range value was supplied for an input parameter.', + 'class' => 'InvalidInputException', + ), + array( + 'reason' => 'The request was rejected because it referenced an entity that does not exist. The error message describes the entity.', + 'class' => 'NoSuchEntityException', + ), + array( + 'reason' => 'The request was rejected because it attempted to create resources beyond the current AWS account limits. The error message describes the limit exceeded.', + 'class' => 'LimitExceededException', + ), + array( + 'reason' => 'The request processing has failed because of an unknown error, exception or failure.', + 'class' => 'ServiceFailureException', + ), + ), + ), 'AddRoleToInstanceProfile' => array( 'httpMethod' => 'POST', 'uri' => '/', @@ -117,6 +173,10 @@ return array ( 'reason' => 'The request was rejected because it attempted to create resources beyond the current AWS account limits. The error message describes the limit exceeded.', 'class' => 'LimitExceededException', ), + array( + 'reason' => 'The request processing has failed because of an unknown error, exception or failure.', + 'class' => 'ServiceFailureException', + ), ), ), 'AddUserToGroup' => array( @@ -160,6 +220,163 @@ return array ( 'reason' => 'The request was rejected because it attempted to create resources beyond the current AWS account limits. The error message describes the limit exceeded.', 'class' => 'LimitExceededException', ), + array( + 'reason' => 'The request processing has failed because of an unknown error, exception or failure.', + 'class' => 'ServiceFailureException', + ), + ), + ), + 'AttachGroupPolicy' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'EmptyOutput', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'AttachGroupPolicy', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2010-05-08', + ), + 'GroupName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 1, + 'maxLength' => 128, + ), + 'PolicyArn' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 20, + 'maxLength' => 2048, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The request was rejected because it referenced an entity that does not exist. The error message describes the entity.', + 'class' => 'NoSuchEntityException', + ), + array( + 'reason' => 'The request was rejected because it attempted to create resources beyond the current AWS account limits. The error message describes the limit exceeded.', + 'class' => 'LimitExceededException', + ), + array( + 'reason' => 'The request was rejected because an invalid or out-of-range value was supplied for an input parameter.', + 'class' => 'InvalidInputException', + ), + array( + 'reason' => 'The request processing has failed because of an unknown error, exception or failure.', + 'class' => 'ServiceFailureException', + ), + ), + ), + 'AttachRolePolicy' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'EmptyOutput', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'AttachRolePolicy', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2010-05-08', + ), + 'RoleName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 1, + 'maxLength' => 64, + ), + 'PolicyArn' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 20, + 'maxLength' => 2048, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The request was rejected because it referenced an entity that does not exist. The error message describes the entity.', + 'class' => 'NoSuchEntityException', + ), + array( + 'reason' => 'The request was rejected because it attempted to create resources beyond the current AWS account limits. The error message describes the limit exceeded.', + 'class' => 'LimitExceededException', + ), + array( + 'reason' => 'The request was rejected because an invalid or out-of-range value was supplied for an input parameter.', + 'class' => 'InvalidInputException', + ), + array( + 'reason' => 'The request processing has failed because of an unknown error, exception or failure.', + 'class' => 'ServiceFailureException', + ), + ), + ), + 'AttachUserPolicy' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'EmptyOutput', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'AttachUserPolicy', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2010-05-08', + ), + 'UserName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 1, + 'maxLength' => 64, + ), + 'PolicyArn' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 20, + 'maxLength' => 2048, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The request was rejected because it referenced an entity that does not exist. The error message describes the entity.', + 'class' => 'NoSuchEntityException', + ), + array( + 'reason' => 'The request was rejected because it attempted to create resources beyond the current AWS account limits. The error message describes the limit exceeded.', + 'class' => 'LimitExceededException', + ), + array( + 'reason' => 'The request was rejected because an invalid or out-of-range value was supplied for an input parameter.', + 'class' => 'InvalidInputException', + ), + array( + 'reason' => 'The request processing has failed because of an unknown error, exception or failure.', + 'class' => 'ServiceFailureException', + ), ), ), 'ChangePassword' => array( @@ -211,6 +428,14 @@ return array ( 'reason' => 'The request was rejected because it referenced an entity that is temporarily unmodifiable, such as a user name that was deleted and then recreated. The error indicates that the request is likely to succeed if you try again after waiting several minutes. The error message describes the entity.', 'class' => 'EntityTemporarilyUnmodifiableException', ), + array( + 'reason' => 'The request was rejected because the provided password did not meet the requirements imposed by the account password policy.', + 'class' => 'PasswordPolicyViolationException', + ), + array( + 'reason' => 'The request processing has failed because of an unknown error, exception or failure.', + 'class' => 'ServiceFailureException', + ), ), ), 'CreateAccessKey' => array( @@ -246,6 +471,10 @@ return array ( 'reason' => 'The request was rejected because it attempted to create resources beyond the current AWS account limits. The error message describes the limit exceeded.', 'class' => 'LimitExceededException', ), + array( + 'reason' => 'The request processing has failed because of an unknown error, exception or failure.', + 'class' => 'ServiceFailureException', + ), ), ), 'CreateAccountAlias' => array( @@ -282,6 +511,10 @@ return array ( 'reason' => 'The request was rejected because it attempted to create resources beyond the current AWS account limits. The error message describes the limit exceeded.', 'class' => 'LimitExceededException', ), + array( + 'reason' => 'The request processing has failed because of an unknown error, exception or failure.', + 'class' => 'ServiceFailureException', + ), ), ), 'CreateGroup' => array( @@ -328,6 +561,10 @@ return array ( 'reason' => 'The request was rejected because it referenced an entity that does not exist. The error message describes the entity.', 'class' => 'NoSuchEntityException', ), + array( + 'reason' => 'The request processing has failed because of an unknown error, exception or failure.', + 'class' => 'ServiceFailureException', + ), ), ), 'CreateInstanceProfile' => array( @@ -370,6 +607,10 @@ return array ( 'reason' => 'The request was rejected because it attempted to create resources beyond the current AWS account limits. The error message describes the limit exceeded.', 'class' => 'LimitExceededException', ), + array( + 'reason' => 'The request processing has failed because of an unknown error, exception or failure.', + 'class' => 'ServiceFailureException', + ), ), ), 'CreateLoginProfile' => array( @@ -403,6 +644,11 @@ return array ( 'minLength' => 1, 'maxLength' => 128, ), + 'PasswordResetRequired' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), ), 'errorResponses' => array( array( @@ -421,95 +667,295 @@ return array ( 'reason' => 'The request was rejected because it attempted to create resources beyond the current AWS account limits. The error message describes the limit exceeded.', 'class' => 'LimitExceededException', ), + array( + 'reason' => 'The request processing has failed because of an unknown error, exception or failure.', + 'class' => 'ServiceFailureException', + ), ), ), - 'CreateRole' => array( + 'CreateOpenIDConnectProvider' => array( 'httpMethod' => 'POST', 'uri' => '/', 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'CreateRoleResponse', + 'responseClass' => 'CreateOpenIDConnectProviderResponse', 'responseType' => 'model', 'parameters' => array( 'Action' => array( 'static' => true, 'location' => 'aws.query', - 'default' => 'CreateRole', + 'default' => 'CreateOpenIDConnectProvider', ), 'Version' => array( 'static' => true, 'location' => 'aws.query', 'default' => '2010-05-08', ), - 'Path' => array( + 'Url' => array( + 'required' => true, 'type' => 'string', 'location' => 'aws.query', 'minLength' => 1, - 'maxLength' => 512, + 'maxLength' => 255, ), - 'RoleName' => array( - 'required' => true, - 'type' => 'string', + 'ClientIDList' => array( + 'type' => 'array', 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 64, + 'sentAs' => 'ClientIDList.member', + 'items' => array( + 'name' => 'clientIDType', + 'type' => 'string', + 'minLength' => 1, + 'maxLength' => 255, + ), ), - 'AssumeRolePolicyDocument' => array( + 'ThumbprintList' => array( 'required' => true, - 'type' => 'string', + 'type' => 'array', 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 131072, + 'sentAs' => 'ThumbprintList.member', + 'items' => array( + 'name' => 'thumbprintType', + 'type' => 'string', + 'minLength' => 40, + 'maxLength' => 40, + ), ), ), 'errorResponses' => array( array( - 'reason' => 'The request was rejected because it attempted to create resources beyond the current AWS account limits. The error message describes the limit exceeded.', - 'class' => 'LimitExceededException', + 'reason' => 'The request was rejected because an invalid or out-of-range value was supplied for an input parameter.', + 'class' => 'InvalidInputException', ), array( 'reason' => 'The request was rejected because it attempted to create a resource that already exists.', 'class' => 'EntityAlreadyExistsException', ), array( - 'reason' => 'The request was rejected because the policy document was malformed. The error message describes the specific error.', - 'class' => 'MalformedPolicyDocumentException', + 'reason' => 'The request was rejected because it attempted to create resources beyond the current AWS account limits. The error message describes the limit exceeded.', + 'class' => 'LimitExceededException', + ), + array( + 'reason' => 'The request processing has failed because of an unknown error, exception or failure.', + 'class' => 'ServiceFailureException', ), ), ), - 'CreateSAMLProvider' => array( + 'CreatePolicy' => array( 'httpMethod' => 'POST', 'uri' => '/', 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'CreateSAMLProviderResponse', + 'responseClass' => 'CreatePolicyResponse', 'responseType' => 'model', 'parameters' => array( 'Action' => array( 'static' => true, 'location' => 'aws.query', - 'default' => 'CreateSAMLProvider', + 'default' => 'CreatePolicy', ), 'Version' => array( 'static' => true, 'location' => 'aws.query', 'default' => '2010-05-08', ), - 'SAMLMetadataDocument' => array( + 'PolicyName' => array( 'required' => true, 'type' => 'string', 'location' => 'aws.query', - 'minLength' => 1000, - 'maxLength' => 10000000, + 'minLength' => 1, + 'maxLength' => 128, ), - 'Name' => array( + 'Path' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'PolicyDocument' => array( 'required' => true, 'type' => 'string', 'location' => 'aws.query', 'minLength' => 1, - 'maxLength' => 128, + 'maxLength' => 131072, ), - ), - 'errorResponses' => array( + 'Description' => array( + 'type' => 'string', + 'location' => 'aws.query', + 'maxLength' => 1000, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The request was rejected because an invalid or out-of-range value was supplied for an input parameter.', + 'class' => 'InvalidInputException', + ), + array( + 'reason' => 'The request was rejected because it attempted to create resources beyond the current AWS account limits. The error message describes the limit exceeded.', + 'class' => 'LimitExceededException', + ), + array( + 'reason' => 'The request was rejected because it attempted to create a resource that already exists.', + 'class' => 'EntityAlreadyExistsException', + ), + array( + 'reason' => 'The request was rejected because the policy document was malformed. The error message describes the specific error.', + 'class' => 'MalformedPolicyDocumentException', + ), + array( + 'reason' => 'The request processing has failed because of an unknown error, exception or failure.', + 'class' => 'ServiceFailureException', + ), + ), + ), + 'CreatePolicyVersion' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'CreatePolicyVersionResponse', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'CreatePolicyVersion', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2010-05-08', + ), + 'PolicyArn' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 20, + 'maxLength' => 2048, + ), + 'PolicyDocument' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 1, + 'maxLength' => 131072, + ), + 'SetAsDefault' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The request was rejected because it referenced an entity that does not exist. The error message describes the entity.', + 'class' => 'NoSuchEntityException', + ), + array( + 'reason' => 'The request was rejected because the policy document was malformed. The error message describes the specific error.', + 'class' => 'MalformedPolicyDocumentException', + ), + array( + 'reason' => 'The request was rejected because an invalid or out-of-range value was supplied for an input parameter.', + 'class' => 'InvalidInputException', + ), + array( + 'reason' => 'The request was rejected because it attempted to create resources beyond the current AWS account limits. The error message describes the limit exceeded.', + 'class' => 'LimitExceededException', + ), + array( + 'reason' => 'The request processing has failed because of an unknown error, exception or failure.', + 'class' => 'ServiceFailureException', + ), + ), + ), + 'CreateRole' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'CreateRoleResponse', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'CreateRole', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2010-05-08', + ), + 'Path' => array( + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 1, + 'maxLength' => 512, + ), + 'RoleName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 1, + 'maxLength' => 64, + ), + 'AssumeRolePolicyDocument' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 1, + 'maxLength' => 131072, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The request was rejected because it attempted to create resources beyond the current AWS account limits. The error message describes the limit exceeded.', + 'class' => 'LimitExceededException', + ), + array( + 'reason' => 'The request was rejected because it attempted to create a resource that already exists.', + 'class' => 'EntityAlreadyExistsException', + ), + array( + 'reason' => 'The request was rejected because the policy document was malformed. The error message describes the specific error.', + 'class' => 'MalformedPolicyDocumentException', + ), + array( + 'reason' => 'The request processing has failed because of an unknown error, exception or failure.', + 'class' => 'ServiceFailureException', + ), + ), + ), + 'CreateSAMLProvider' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'CreateSAMLProviderResponse', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'CreateSAMLProvider', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2010-05-08', + ), + 'SAMLMetadataDocument' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 1000, + 'maxLength' => 10000000, + ), + 'Name' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 1, + 'maxLength' => 128, + ), + ), + 'errorResponses' => array( array( + 'reason' => 'The request was rejected because an invalid or out-of-range value was supplied for an input parameter.', 'class' => 'InvalidInputException', ), array( @@ -520,6 +966,10 @@ return array ( 'reason' => 'The request was rejected because it attempted to create resources beyond the current AWS account limits. The error message describes the limit exceeded.', 'class' => 'LimitExceededException', ), + array( + 'reason' => 'The request processing has failed because of an unknown error, exception or failure.', + 'class' => 'ServiceFailureException', + ), ), ), 'CreateUser' => array( @@ -566,6 +1016,10 @@ return array ( 'reason' => 'The request was rejected because it referenced an entity that does not exist. The error message describes the entity.', 'class' => 'NoSuchEntityException', ), + array( + 'reason' => 'The request processing has failed because of an unknown error, exception or failure.', + 'class' => 'ServiceFailureException', + ), ), ), 'CreateVirtualMFADevice' => array( @@ -607,6 +1061,10 @@ return array ( 'reason' => 'The request was rejected because it attempted to create a resource that already exists.', 'class' => 'EntityAlreadyExistsException', ), + array( + 'reason' => 'The request processing has failed because of an unknown error, exception or failure.', + 'class' => 'ServiceFailureException', + ), ), ), 'DeactivateMFADevice' => array( @@ -654,6 +1112,10 @@ return array ( 'reason' => 'The request was rejected because it attempted to create resources beyond the current AWS account limits. The error message describes the limit exceeded.', 'class' => 'LimitExceededException', ), + array( + 'reason' => 'The request processing has failed because of an unknown error, exception or failure.', + 'class' => 'ServiceFailureException', + ), ), ), 'DeleteAccessKey' => array( @@ -696,6 +1158,10 @@ return array ( 'reason' => 'The request was rejected because it attempted to create resources beyond the current AWS account limits. The error message describes the limit exceeded.', 'class' => 'LimitExceededException', ), + array( + 'reason' => 'The request processing has failed because of an unknown error, exception or failure.', + 'class' => 'ServiceFailureException', + ), ), ), 'DeleteAccountAlias' => array( @@ -732,6 +1198,10 @@ return array ( 'reason' => 'The request was rejected because it attempted to create resources beyond the current AWS account limits. The error message describes the limit exceeded.', 'class' => 'LimitExceededException', ), + array( + 'reason' => 'The request processing has failed because of an unknown error, exception or failure.', + 'class' => 'ServiceFailureException', + ), ), ), 'DeleteAccountPasswordPolicy' => array( @@ -757,6 +1227,14 @@ return array ( 'reason' => 'The request was rejected because it referenced an entity that does not exist. The error message describes the entity.', 'class' => 'NoSuchEntityException', ), + array( + 'reason' => 'The request was rejected because it attempted to create resources beyond the current AWS account limits. The error message describes the limit exceeded.', + 'class' => 'LimitExceededException', + ), + array( + 'reason' => 'The request processing has failed because of an unknown error, exception or failure.', + 'class' => 'ServiceFailureException', + ), ), ), 'DeleteGroup' => array( @@ -797,6 +1275,10 @@ return array ( 'reason' => 'The request was rejected because it attempted to create resources beyond the current AWS account limits. The error message describes the limit exceeded.', 'class' => 'LimitExceededException', ), + array( + 'reason' => 'The request processing has failed because of an unknown error, exception or failure.', + 'class' => 'ServiceFailureException', + ), ), ), 'DeleteGroupPolicy' => array( @@ -840,6 +1322,10 @@ return array ( 'reason' => 'The request was rejected because it attempted to create resources beyond the current AWS account limits. The error message describes the limit exceeded.', 'class' => 'LimitExceededException', ), + array( + 'reason' => 'The request processing has failed because of an unknown error, exception or failure.', + 'class' => 'ServiceFailureException', + ), ), ), 'DeleteInstanceProfile' => array( @@ -880,6 +1366,10 @@ return array ( 'reason' => 'The request was rejected because it attempted to create resources beyond the current AWS account limits. The error message describes the limit exceeded.', 'class' => 'LimitExceededException', ), + array( + 'reason' => 'The request processing has failed because of an unknown error, exception or failure.', + 'class' => 'ServiceFailureException', + ), ), ), 'DeleteLoginProfile' => array( @@ -920,9 +1410,13 @@ return array ( 'reason' => 'The request was rejected because it attempted to create resources beyond the current AWS account limits. The error message describes the limit exceeded.', 'class' => 'LimitExceededException', ), + array( + 'reason' => 'The request processing has failed because of an unknown error, exception or failure.', + 'class' => 'ServiceFailureException', + ), ), ), - 'DeleteRole' => array( + 'DeleteOpenIDConnectProvider' => array( 'httpMethod' => 'POST', 'uri' => '/', 'class' => 'Aws\\Common\\Command\\QueryCommand', @@ -932,37 +1426,37 @@ return array ( 'Action' => array( 'static' => true, 'location' => 'aws.query', - 'default' => 'DeleteRole', + 'default' => 'DeleteOpenIDConnectProvider', ), 'Version' => array( 'static' => true, 'location' => 'aws.query', 'default' => '2010-05-08', ), - 'RoleName' => array( + 'OpenIDConnectProviderArn' => array( 'required' => true, 'type' => 'string', 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 64, + 'minLength' => 20, + 'maxLength' => 2048, ), ), 'errorResponses' => array( array( - 'reason' => 'The request was rejected because it referenced an entity that does not exist. The error message describes the entity.', - 'class' => 'NoSuchEntityException', + 'reason' => 'The request was rejected because an invalid or out-of-range value was supplied for an input parameter.', + 'class' => 'InvalidInputException', ), array( - 'reason' => 'The request was rejected because it attempted to delete a resource that has attached subordinate entities. The error message describes these entities.', - 'class' => 'DeleteConflictException', + 'reason' => 'The request was rejected because it referenced an entity that does not exist. The error message describes the entity.', + 'class' => 'NoSuchEntityException', ), array( - 'reason' => 'The request was rejected because it attempted to create resources beyond the current AWS account limits. The error message describes the limit exceeded.', - 'class' => 'LimitExceededException', + 'reason' => 'The request processing has failed because of an unknown error, exception or failure.', + 'class' => 'ServiceFailureException', ), ), ), - 'DeleteRolePolicy' => array( + 'DeletePolicy' => array( 'httpMethod' => 'POST', 'uri' => '/', 'class' => 'Aws\\Common\\Command\\QueryCommand', @@ -972,26 +1466,19 @@ return array ( 'Action' => array( 'static' => true, 'location' => 'aws.query', - 'default' => 'DeleteRolePolicy', + 'default' => 'DeletePolicy', ), 'Version' => array( 'static' => true, 'location' => 'aws.query', 'default' => '2010-05-08', ), - 'RoleName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 64, - ), - 'PolicyName' => array( + 'PolicyArn' => array( 'required' => true, 'type' => 'string', 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 128, + 'minLength' => 20, + 'maxLength' => 2048, ), ), 'errorResponses' => array( @@ -1003,9 +1490,21 @@ return array ( 'reason' => 'The request was rejected because it attempted to create resources beyond the current AWS account limits. The error message describes the limit exceeded.', 'class' => 'LimitExceededException', ), + array( + 'reason' => 'The request was rejected because an invalid or out-of-range value was supplied for an input parameter.', + 'class' => 'InvalidInputException', + ), + array( + 'reason' => 'The request was rejected because it attempted to delete a resource that has attached subordinate entities. The error message describes these entities.', + 'class' => 'DeleteConflictException', + ), + array( + 'reason' => 'The request processing has failed because of an unknown error, exception or failure.', + 'class' => 'ServiceFailureException', + ), ), ), - 'DeleteSAMLProvider' => array( + 'DeletePolicyVersion' => array( 'httpMethod' => 'POST', 'uri' => '/', 'class' => 'Aws\\Common\\Command\\QueryCommand', @@ -1015,28 +1514,50 @@ return array ( 'Action' => array( 'static' => true, 'location' => 'aws.query', - 'default' => 'DeleteSAMLProvider', + 'default' => 'DeletePolicyVersion', ), 'Version' => array( 'static' => true, 'location' => 'aws.query', 'default' => '2010-05-08', ), - 'SAMLProviderArn' => array( + 'PolicyArn' => array( 'required' => true, 'type' => 'string', 'location' => 'aws.query', 'minLength' => 20, 'maxLength' => 2048, ), + 'VersionId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), ), 'errorResponses' => array( array( + 'reason' => 'The request was rejected because it referenced an entity that does not exist. The error message describes the entity.', + 'class' => 'NoSuchEntityException', + ), + array( + 'reason' => 'The request was rejected because it attempted to create resources beyond the current AWS account limits. The error message describes the limit exceeded.', + 'class' => 'LimitExceededException', + ), + array( + 'reason' => 'The request was rejected because an invalid or out-of-range value was supplied for an input parameter.', 'class' => 'InvalidInputException', ), + array( + 'reason' => 'The request was rejected because it attempted to delete a resource that has attached subordinate entities. The error message describes these entities.', + 'class' => 'DeleteConflictException', + ), + array( + 'reason' => 'The request processing has failed because of an unknown error, exception or failure.', + 'class' => 'ServiceFailureException', + ), ), ), - 'DeleteServerCertificate' => array( + 'DeleteRole' => array( 'httpMethod' => 'POST', 'uri' => '/', 'class' => 'Aws\\Common\\Command\\QueryCommand', @@ -1046,19 +1567,19 @@ return array ( 'Action' => array( 'static' => true, 'location' => 'aws.query', - 'default' => 'DeleteServerCertificate', + 'default' => 'DeleteRole', ), 'Version' => array( 'static' => true, 'location' => 'aws.query', 'default' => '2010-05-08', ), - 'ServerCertificateName' => array( + 'RoleName' => array( 'required' => true, 'type' => 'string', 'location' => 'aws.query', 'minLength' => 1, - 'maxLength' => 128, + 'maxLength' => 64, ), ), 'errorResponses' => array( @@ -1074,9 +1595,13 @@ return array ( 'reason' => 'The request was rejected because it attempted to create resources beyond the current AWS account limits. The error message describes the limit exceeded.', 'class' => 'LimitExceededException', ), + array( + 'reason' => 'The request processing has failed because of an unknown error, exception or failure.', + 'class' => 'ServiceFailureException', + ), ), ), - 'DeleteSigningCertificate' => array( + 'DeleteRolePolicy' => array( 'httpMethod' => 'POST', 'uri' => '/', 'class' => 'Aws\\Common\\Command\\QueryCommand', @@ -1086,24 +1611,25 @@ return array ( 'Action' => array( 'static' => true, 'location' => 'aws.query', - 'default' => 'DeleteSigningCertificate', + 'default' => 'DeleteRolePolicy', ), 'Version' => array( 'static' => true, 'location' => 'aws.query', 'default' => '2010-05-08', ), - 'UserName' => array( + 'RoleName' => array( + 'required' => true, 'type' => 'string', 'location' => 'aws.query', 'minLength' => 1, - 'maxLength' => 128, + 'maxLength' => 64, ), - 'CertificateId' => array( + 'PolicyName' => array( 'required' => true, 'type' => 'string', 'location' => 'aws.query', - 'minLength' => 24, + 'minLength' => 1, 'maxLength' => 128, ), ), @@ -1116,9 +1642,13 @@ return array ( 'reason' => 'The request was rejected because it attempted to create resources beyond the current AWS account limits. The error message describes the limit exceeded.', 'class' => 'LimitExceededException', ), + array( + 'reason' => 'The request processing has failed because of an unknown error, exception or failure.', + 'class' => 'ServiceFailureException', + ), ), ), - 'DeleteUser' => array( + 'DeleteSAMLProvider' => array( 'httpMethod' => 'POST', 'uri' => '/', 'class' => 'Aws\\Common\\Command\\QueryCommand', @@ -1128,22 +1658,26 @@ return array ( 'Action' => array( 'static' => true, 'location' => 'aws.query', - 'default' => 'DeleteUser', + 'default' => 'DeleteSAMLProvider', ), 'Version' => array( 'static' => true, 'location' => 'aws.query', 'default' => '2010-05-08', ), - 'UserName' => array( + 'SAMLProviderArn' => array( 'required' => true, 'type' => 'string', 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 128, + 'minLength' => 20, + 'maxLength' => 2048, ), ), 'errorResponses' => array( + array( + 'reason' => 'The request was rejected because an invalid or out-of-range value was supplied for an input parameter.', + 'class' => 'InvalidInputException', + ), array( 'reason' => 'The request was rejected because it attempted to create resources beyond the current AWS account limits. The error message describes the limit exceeded.', 'class' => 'LimitExceededException', @@ -1153,12 +1687,12 @@ return array ( 'class' => 'NoSuchEntityException', ), array( - 'reason' => 'The request was rejected because it attempted to delete a resource that has attached subordinate entities. The error message describes these entities.', - 'class' => 'DeleteConflictException', + 'reason' => 'The request processing has failed because of an unknown error, exception or failure.', + 'class' => 'ServiceFailureException', ), ), ), - 'DeleteUserPolicy' => array( + 'DeleteServerCertificate' => array( 'httpMethod' => 'POST', 'uri' => '/', 'class' => 'Aws\\Common\\Command\\QueryCommand', @@ -1168,21 +1702,14 @@ return array ( 'Action' => array( 'static' => true, 'location' => 'aws.query', - 'default' => 'DeleteUserPolicy', + 'default' => 'DeleteServerCertificate', ), 'Version' => array( 'static' => true, 'location' => 'aws.query', 'default' => '2010-05-08', ), - 'UserName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 128, - ), - 'PolicyName' => array( + 'ServerCertificateName' => array( 'required' => true, 'type' => 'string', 'location' => 'aws.query', @@ -1195,13 +1722,21 @@ return array ( 'reason' => 'The request was rejected because it referenced an entity that does not exist. The error message describes the entity.', 'class' => 'NoSuchEntityException', ), + array( + 'reason' => 'The request was rejected because it attempted to delete a resource that has attached subordinate entities. The error message describes these entities.', + 'class' => 'DeleteConflictException', + ), array( 'reason' => 'The request was rejected because it attempted to create resources beyond the current AWS account limits. The error message describes the limit exceeded.', 'class' => 'LimitExceededException', ), + array( + 'reason' => 'The request processing has failed because of an unknown error, exception or failure.', + 'class' => 'ServiceFailureException', + ), ), ), - 'DeleteVirtualMFADevice' => array( + 'DeleteSigningCertificate' => array( 'httpMethod' => 'POST', 'uri' => '/', 'class' => 'Aws\\Common\\Command\\QueryCommand', @@ -1211,19 +1746,25 @@ return array ( 'Action' => array( 'static' => true, 'location' => 'aws.query', - 'default' => 'DeleteVirtualMFADevice', + 'default' => 'DeleteSigningCertificate', ), 'Version' => array( 'static' => true, 'location' => 'aws.query', 'default' => '2010-05-08', ), - 'SerialNumber' => array( + 'UserName' => array( + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 1, + 'maxLength' => 128, + ), + 'CertificateId' => array( 'required' => true, 'type' => 'string', 'location' => 'aws.query', - 'minLength' => 9, - 'maxLength' => 256, + 'minLength' => 24, + 'maxLength' => 128, ), ), 'errorResponses' => array( @@ -1231,17 +1772,17 @@ return array ( 'reason' => 'The request was rejected because it referenced an entity that does not exist. The error message describes the entity.', 'class' => 'NoSuchEntityException', ), - array( - 'reason' => 'The request was rejected because it attempted to delete a resource that has attached subordinate entities. The error message describes these entities.', - 'class' => 'DeleteConflictException', - ), array( 'reason' => 'The request was rejected because it attempted to create resources beyond the current AWS account limits. The error message describes the limit exceeded.', 'class' => 'LimitExceededException', ), + array( + 'reason' => 'The request processing has failed because of an unknown error, exception or failure.', + 'class' => 'ServiceFailureException', + ), ), ), - 'EnableMFADevice' => array( + 'DeleteUser' => array( 'httpMethod' => 'POST', 'uri' => '/', 'class' => 'Aws\\Common\\Command\\QueryCommand', @@ -1251,7 +1792,7 @@ return array ( 'Action' => array( 'static' => true, 'location' => 'aws.query', - 'default' => 'EnableMFADevice', + 'default' => 'DeleteUser', ), 'Version' => array( 'static' => true, @@ -1265,41 +1806,8 @@ return array ( 'minLength' => 1, 'maxLength' => 128, ), - 'SerialNumber' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 9, - 'maxLength' => 256, - ), - 'AuthenticationCode1' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 6, - 'maxLength' => 6, - ), - 'AuthenticationCode2' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 6, - 'maxLength' => 6, - ), ), 'errorResponses' => array( - array( - 'reason' => 'The request was rejected because it attempted to create a resource that already exists.', - 'class' => 'EntityAlreadyExistsException', - ), - array( - 'reason' => 'The request was rejected because it referenced an entity that is temporarily unmodifiable, such as a user name that was deleted and then recreated. The error indicates that the request is likely to succeed if you try again after waiting several minutes. The error message describes the entity.', - 'class' => 'EntityTemporarilyUnmodifiableException', - ), - array( - 'reason' => 'The request was rejected because the authentication code was not recognized. The error message describes the specific error.', - 'class' => 'InvalidAuthenticationCodeException', - ), array( 'reason' => 'The request was rejected because it attempted to create resources beyond the current AWS account limits. The error message describes the limit exceeded.', 'class' => 'LimitExceededException', @@ -1308,63 +1816,118 @@ return array ( 'reason' => 'The request was rejected because it referenced an entity that does not exist. The error message describes the entity.', 'class' => 'NoSuchEntityException', ), + array( + 'reason' => 'The request was rejected because it attempted to delete a resource that has attached subordinate entities. The error message describes these entities.', + 'class' => 'DeleteConflictException', + ), + array( + 'reason' => 'The request processing has failed because of an unknown error, exception or failure.', + 'class' => 'ServiceFailureException', + ), ), ), - 'GetAccountPasswordPolicy' => array( + 'DeleteUserPolicy' => array( 'httpMethod' => 'POST', 'uri' => '/', 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'GetAccountPasswordPolicyResponse', + 'responseClass' => 'EmptyOutput', 'responseType' => 'model', 'parameters' => array( 'Action' => array( 'static' => true, 'location' => 'aws.query', - 'default' => 'GetAccountPasswordPolicy', + 'default' => 'DeleteUserPolicy', ), 'Version' => array( 'static' => true, 'location' => 'aws.query', 'default' => '2010-05-08', ), + 'UserName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 1, + 'maxLength' => 128, + ), + 'PolicyName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 1, + 'maxLength' => 128, + ), ), 'errorResponses' => array( array( 'reason' => 'The request was rejected because it referenced an entity that does not exist. The error message describes the entity.', 'class' => 'NoSuchEntityException', ), + array( + 'reason' => 'The request was rejected because it attempted to create resources beyond the current AWS account limits. The error message describes the limit exceeded.', + 'class' => 'LimitExceededException', + ), + array( + 'reason' => 'The request processing has failed because of an unknown error, exception or failure.', + 'class' => 'ServiceFailureException', + ), ), ), - 'GetAccountSummary' => array( + 'DeleteVirtualMFADevice' => array( 'httpMethod' => 'POST', 'uri' => '/', 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'GetAccountSummaryResponse', + 'responseClass' => 'EmptyOutput', 'responseType' => 'model', 'parameters' => array( 'Action' => array( 'static' => true, 'location' => 'aws.query', - 'default' => 'GetAccountSummary', + 'default' => 'DeleteVirtualMFADevice', ), 'Version' => array( 'static' => true, 'location' => 'aws.query', 'default' => '2010-05-08', ), + 'SerialNumber' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 9, + 'maxLength' => 256, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The request was rejected because it referenced an entity that does not exist. The error message describes the entity.', + 'class' => 'NoSuchEntityException', + ), + array( + 'reason' => 'The request was rejected because it attempted to delete a resource that has attached subordinate entities. The error message describes these entities.', + 'class' => 'DeleteConflictException', + ), + array( + 'reason' => 'The request was rejected because it attempted to create resources beyond the current AWS account limits. The error message describes the limit exceeded.', + 'class' => 'LimitExceededException', + ), + array( + 'reason' => 'The request processing has failed because of an unknown error, exception or failure.', + 'class' => 'ServiceFailureException', + ), ), ), - 'GetGroup' => array( + 'DetachGroupPolicy' => array( 'httpMethod' => 'POST', 'uri' => '/', 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'GetGroupResponse', + 'responseClass' => 'EmptyOutput', 'responseType' => 'model', 'parameters' => array( 'Action' => array( 'static' => true, 'location' => 'aws.query', - 'default' => 'GetGroup', + 'default' => 'DetachGroupPolicy', ), 'Version' => array( 'static' => true, @@ -1378,17 +1941,12 @@ return array ( 'minLength' => 1, 'maxLength' => 128, ), - 'Marker' => array( + 'PolicyArn' => array( + 'required' => true, 'type' => 'string', 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 320, - ), - 'MaxItems' => array( - 'type' => 'numeric', - 'location' => 'aws.query', - 'minimum' => 1, - 'maximum' => 1000, + 'minLength' => 20, + 'maxLength' => 2048, ), ), 'errorResponses' => array( @@ -1396,38 +1954,50 @@ return array ( 'reason' => 'The request was rejected because it referenced an entity that does not exist. The error message describes the entity.', 'class' => 'NoSuchEntityException', ), + array( + 'reason' => 'The request was rejected because it attempted to create resources beyond the current AWS account limits. The error message describes the limit exceeded.', + 'class' => 'LimitExceededException', + ), + array( + 'reason' => 'The request was rejected because an invalid or out-of-range value was supplied for an input parameter.', + 'class' => 'InvalidInputException', + ), + array( + 'reason' => 'The request processing has failed because of an unknown error, exception or failure.', + 'class' => 'ServiceFailureException', + ), ), ), - 'GetGroupPolicy' => array( + 'DetachRolePolicy' => array( 'httpMethod' => 'POST', 'uri' => '/', 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'GetGroupPolicyResponse', + 'responseClass' => 'EmptyOutput', 'responseType' => 'model', 'parameters' => array( 'Action' => array( 'static' => true, 'location' => 'aws.query', - 'default' => 'GetGroupPolicy', + 'default' => 'DetachRolePolicy', ), 'Version' => array( 'static' => true, 'location' => 'aws.query', 'default' => '2010-05-08', ), - 'GroupName' => array( + 'RoleName' => array( 'required' => true, 'type' => 'string', 'location' => 'aws.query', 'minLength' => 1, - 'maxLength' => 128, + 'maxLength' => 64, ), - 'PolicyName' => array( + 'PolicyArn' => array( 'required' => true, 'type' => 'string', 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 128, + 'minLength' => 20, + 'maxLength' => 2048, ), ), 'errorResponses' => array( @@ -1435,31 +2005,50 @@ return array ( 'reason' => 'The request was rejected because it referenced an entity that does not exist. The error message describes the entity.', 'class' => 'NoSuchEntityException', ), + array( + 'reason' => 'The request was rejected because it attempted to create resources beyond the current AWS account limits. The error message describes the limit exceeded.', + 'class' => 'LimitExceededException', + ), + array( + 'reason' => 'The request was rejected because an invalid or out-of-range value was supplied for an input parameter.', + 'class' => 'InvalidInputException', + ), + array( + 'reason' => 'The request processing has failed because of an unknown error, exception or failure.', + 'class' => 'ServiceFailureException', + ), ), ), - 'GetInstanceProfile' => array( + 'DetachUserPolicy' => array( 'httpMethod' => 'POST', 'uri' => '/', 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'GetInstanceProfileResponse', + 'responseClass' => 'EmptyOutput', 'responseType' => 'model', 'parameters' => array( 'Action' => array( 'static' => true, 'location' => 'aws.query', - 'default' => 'GetInstanceProfile', + 'default' => 'DetachUserPolicy', ), 'Version' => array( 'static' => true, 'location' => 'aws.query', 'default' => '2010-05-08', ), - 'InstanceProfileName' => array( + 'UserName' => array( 'required' => true, 'type' => 'string', 'location' => 'aws.query', 'minLength' => 1, - 'maxLength' => 128, + 'maxLength' => 64, + ), + 'PolicyArn' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 20, + 'maxLength' => 2048, ), ), 'errorResponses' => array( @@ -1467,19 +2056,31 @@ return array ( 'reason' => 'The request was rejected because it referenced an entity that does not exist. The error message describes the entity.', 'class' => 'NoSuchEntityException', ), + array( + 'reason' => 'The request was rejected because it attempted to create resources beyond the current AWS account limits. The error message describes the limit exceeded.', + 'class' => 'LimitExceededException', + ), + array( + 'reason' => 'The request was rejected because an invalid or out-of-range value was supplied for an input parameter.', + 'class' => 'InvalidInputException', + ), + array( + 'reason' => 'The request processing has failed because of an unknown error, exception or failure.', + 'class' => 'ServiceFailureException', + ), ), ), - 'GetLoginProfile' => array( + 'EnableMFADevice' => array( 'httpMethod' => 'POST', 'uri' => '/', 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'GetLoginProfileResponse', + 'responseClass' => 'EmptyOutput', 'responseType' => 'model', 'parameters' => array( 'Action' => array( 'static' => true, 'location' => 'aws.query', - 'default' => 'GetLoginProfile', + 'default' => 'EnableMFADevice', ), 'Version' => array( 'static' => true, @@ -1491,78 +2092,109 @@ return array ( 'type' => 'string', 'location' => 'aws.query', 'minLength' => 1, - 'maxLength' => 64, + 'maxLength' => 128, ), - ), - 'errorResponses' => array( - array( - 'reason' => 'The request was rejected because it referenced an entity that does not exist. The error message describes the entity.', - 'class' => 'NoSuchEntityException', + 'SerialNumber' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 9, + 'maxLength' => 256, + ), + 'AuthenticationCode1' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 6, + 'maxLength' => 6, + ), + 'AuthenticationCode2' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 6, + 'maxLength' => 6, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The request was rejected because it attempted to create a resource that already exists.', + 'class' => 'EntityAlreadyExistsException', + ), + array( + 'reason' => 'The request was rejected because it referenced an entity that is temporarily unmodifiable, such as a user name that was deleted and then recreated. The error indicates that the request is likely to succeed if you try again after waiting several minutes. The error message describes the entity.', + 'class' => 'EntityTemporarilyUnmodifiableException', + ), + array( + 'reason' => 'The request was rejected because the authentication code was not recognized. The error message describes the specific error.', + 'class' => 'InvalidAuthenticationCodeException', + ), + array( + 'reason' => 'The request was rejected because it attempted to create resources beyond the current AWS account limits. The error message describes the limit exceeded.', + 'class' => 'LimitExceededException', + ), + array( + 'reason' => 'The request was rejected because it referenced an entity that does not exist. The error message describes the entity.', + 'class' => 'NoSuchEntityException', + ), + array( + 'reason' => 'The request processing has failed because of an unknown error, exception or failure.', + 'class' => 'ServiceFailureException', ), ), ), - 'GetRole' => array( + 'GenerateCredentialReport' => array( 'httpMethod' => 'POST', 'uri' => '/', 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'GetRoleResponse', + 'responseClass' => 'GenerateCredentialReportResponse', 'responseType' => 'model', 'parameters' => array( 'Action' => array( 'static' => true, 'location' => 'aws.query', - 'default' => 'GetRole', + 'default' => 'GenerateCredentialReport', ), 'Version' => array( 'static' => true, 'location' => 'aws.query', 'default' => '2010-05-08', ), - 'RoleName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 64, - ), ), 'errorResponses' => array( array( - 'reason' => 'The request was rejected because it referenced an entity that does not exist. The error message describes the entity.', - 'class' => 'NoSuchEntityException', + 'reason' => 'The request was rejected because it attempted to create resources beyond the current AWS account limits. The error message describes the limit exceeded.', + 'class' => 'LimitExceededException', + ), + array( + 'reason' => 'The request processing has failed because of an unknown error, exception or failure.', + 'class' => 'ServiceFailureException', ), ), ), - 'GetRolePolicy' => array( + 'GetAccessKeyLastUsed' => array( 'httpMethod' => 'POST', 'uri' => '/', 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'GetRolePolicyResponse', + 'responseClass' => 'GetAccessKeyLastUsedResponse', 'responseType' => 'model', 'parameters' => array( 'Action' => array( 'static' => true, 'location' => 'aws.query', - 'default' => 'GetRolePolicy', + 'default' => 'GetAccessKeyLastUsed', ), 'Version' => array( 'static' => true, 'location' => 'aws.query', 'default' => '2010-05-08', ), - 'RoleName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 64, - ), - 'PolicyName' => array( + 'AccessKeyId' => array( 'required' => true, 'type' => 'string', 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 128, + 'minLength' => 16, + 'maxLength' => 32, ), ), 'errorResponses' => array( @@ -1572,161 +2204,162 @@ return array ( ), ), ), - 'GetSAMLProvider' => array( + 'GetAccountAuthorizationDetails' => array( 'httpMethod' => 'POST', 'uri' => '/', 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'GetSAMLProviderResponse', + 'responseClass' => 'GetAccountAuthorizationDetailsResponse', 'responseType' => 'model', 'parameters' => array( 'Action' => array( 'static' => true, 'location' => 'aws.query', - 'default' => 'GetSAMLProvider', + 'default' => 'GetAccountAuthorizationDetails', ), 'Version' => array( 'static' => true, 'location' => 'aws.query', 'default' => '2010-05-08', ), - 'SAMLProviderArn' => array( - 'required' => true, + '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' => 20, - 'maxLength' => 2048, + 'minLength' => 1, + 'maxLength' => 320, ), ), 'errorResponses' => array( array( - 'reason' => 'The request was rejected because it referenced an entity that does not exist. The error message describes the entity.', - 'class' => 'NoSuchEntityException', - ), - array( - 'class' => 'InvalidInputException', + 'reason' => 'The request processing has failed because of an unknown error, exception or failure.', + 'class' => 'ServiceFailureException', ), ), ), - 'GetServerCertificate' => array( + 'GetAccountPasswordPolicy' => array( 'httpMethod' => 'POST', 'uri' => '/', 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'GetServerCertificateResponse', + 'responseClass' => 'GetAccountPasswordPolicyResponse', 'responseType' => 'model', 'parameters' => array( 'Action' => array( 'static' => true, 'location' => 'aws.query', - 'default' => 'GetServerCertificate', + 'default' => 'GetAccountPasswordPolicy', ), 'Version' => array( 'static' => true, 'location' => 'aws.query', 'default' => '2010-05-08', ), - 'ServerCertificateName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 128, - ), ), 'errorResponses' => array( array( 'reason' => 'The request was rejected because it referenced an entity that does not exist. The error message describes the entity.', 'class' => 'NoSuchEntityException', ), + array( + 'reason' => 'The request processing has failed because of an unknown error, exception or failure.', + 'class' => 'ServiceFailureException', + ), ), ), - 'GetUser' => array( + 'GetAccountSummary' => array( 'httpMethod' => 'POST', 'uri' => '/', 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'GetUserResponse', + 'responseClass' => 'GetAccountSummaryResponse', 'responseType' => 'model', 'parameters' => array( 'Action' => array( 'static' => true, 'location' => 'aws.query', - 'default' => 'GetUser', + 'default' => 'GetAccountSummary', ), 'Version' => array( 'static' => true, 'location' => 'aws.query', 'default' => '2010-05-08', ), - 'UserName' => array( - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 128, - ), ), 'errorResponses' => array( array( - 'reason' => 'The request was rejected because it referenced an entity that does not exist. The error message describes the entity.', - 'class' => 'NoSuchEntityException', + 'reason' => 'The request processing has failed because of an unknown error, exception or failure.', + 'class' => 'ServiceFailureException', ), ), ), - 'GetUserPolicy' => array( + 'GetCredentialReport' => array( 'httpMethod' => 'POST', 'uri' => '/', 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'GetUserPolicyResponse', + 'responseClass' => 'GetCredentialReportResponse', 'responseType' => 'model', 'parameters' => array( 'Action' => array( 'static' => true, 'location' => 'aws.query', - 'default' => 'GetUserPolicy', + 'default' => 'GetCredentialReport', ), 'Version' => array( 'static' => true, 'location' => 'aws.query', 'default' => '2010-05-08', ), - 'UserName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 128, - ), - 'PolicyName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 128, - ), ), 'errorResponses' => array( array( - 'reason' => 'The request was rejected because it referenced an entity that does not exist. The error message describes the entity.', - 'class' => 'NoSuchEntityException', + 'reason' => 'The request was rejected because the credential report does not exist. To generate a credential report, use GenerateCredentialReport.', + 'class' => 'CredentialReportNotPresentException', + ), + array( + 'reason' => 'The request was rejected because the most recent credential report has expired. To generate a new credential report, use GenerateCredentialReport. For more information about credential report expiration, see Getting Credential Reports in the Using IAM guide.', + 'class' => 'CredentialReportExpiredException', + ), + array( + 'reason' => 'The request was rejected because the credential report is still being generated.', + 'class' => 'CredentialReportNotReadyException', + ), + array( + 'reason' => 'The request processing has failed because of an unknown error, exception or failure.', + 'class' => 'ServiceFailureException', ), ), ), - 'ListAccessKeys' => array( + 'GetGroup' => array( 'httpMethod' => 'POST', 'uri' => '/', 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'ListAccessKeysResponse', + 'responseClass' => 'GetGroupResponse', 'responseType' => 'model', 'parameters' => array( 'Action' => array( 'static' => true, 'location' => 'aws.query', - 'default' => 'ListAccessKeys', + 'default' => 'GetGroup', ), 'Version' => array( 'static' => true, 'location' => 'aws.query', 'default' => '2010-05-08', ), - 'UserName' => array( + 'GroupName' => array( + 'required' => true, 'type' => 'string', 'location' => 'aws.query', 'minLength' => 1, @@ -1750,236 +2383,235 @@ return array ( 'reason' => 'The request was rejected because it referenced an entity that does not exist. The error message describes the entity.', 'class' => 'NoSuchEntityException', ), + array( + 'reason' => 'The request processing has failed because of an unknown error, exception or failure.', + 'class' => 'ServiceFailureException', + ), ), ), - 'ListAccountAliases' => array( + 'GetGroupPolicy' => array( 'httpMethod' => 'POST', 'uri' => '/', 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'ListAccountAliasesResponse', + 'responseClass' => 'GetGroupPolicyResponse', 'responseType' => 'model', 'parameters' => array( 'Action' => array( 'static' => true, 'location' => 'aws.query', - 'default' => 'ListAccountAliases', + 'default' => 'GetGroupPolicy', ), 'Version' => array( 'static' => true, 'location' => 'aws.query', 'default' => '2010-05-08', ), - 'Marker' => array( + 'GroupName' => array( + 'required' => true, 'type' => 'string', 'location' => 'aws.query', 'minLength' => 1, - 'maxLength' => 320, + 'maxLength' => 128, ), - 'MaxItems' => array( - 'type' => 'numeric', + 'PolicyName' => array( + 'required' => true, + 'type' => 'string', 'location' => 'aws.query', - 'minimum' => 1, - 'maximum' => 1000, + 'minLength' => 1, + 'maxLength' => 128, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The request was rejected because it referenced an entity that does not exist. The error message describes the entity.', + 'class' => 'NoSuchEntityException', + ), + array( + 'reason' => 'The request processing has failed because of an unknown error, exception or failure.', + 'class' => 'ServiceFailureException', ), ), ), - 'ListGroupPolicies' => array( + 'GetInstanceProfile' => array( 'httpMethod' => 'POST', 'uri' => '/', 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'ListGroupPoliciesResponse', + 'responseClass' => 'GetInstanceProfileResponse', 'responseType' => 'model', 'parameters' => array( 'Action' => array( 'static' => true, 'location' => 'aws.query', - 'default' => 'ListGroupPolicies', + 'default' => 'GetInstanceProfile', ), 'Version' => array( 'static' => true, 'location' => 'aws.query', 'default' => '2010-05-08', ), - 'GroupName' => array( + 'InstanceProfileName' => array( 'required' => true, 'type' => 'string', 'location' => 'aws.query', 'minLength' => 1, 'maxLength' => 128, ), - 'Marker' => array( - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 320, - ), - 'MaxItems' => array( - 'type' => 'numeric', - 'location' => 'aws.query', - 'minimum' => 1, - 'maximum' => 1000, - ), ), 'errorResponses' => array( array( 'reason' => 'The request was rejected because it referenced an entity that does not exist. The error message describes the entity.', 'class' => 'NoSuchEntityException', ), + array( + 'reason' => 'The request processing has failed because of an unknown error, exception or failure.', + 'class' => 'ServiceFailureException', + ), ), ), - 'ListGroups' => array( + 'GetLoginProfile' => array( 'httpMethod' => 'POST', 'uri' => '/', 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'ListGroupsResponse', + 'responseClass' => 'GetLoginProfileResponse', 'responseType' => 'model', 'parameters' => array( 'Action' => array( 'static' => true, 'location' => 'aws.query', - 'default' => 'ListGroups', + 'default' => 'GetLoginProfile', ), 'Version' => array( 'static' => true, 'location' => 'aws.query', 'default' => '2010-05-08', ), - 'PathPrefix' => array( + 'UserName' => array( + 'required' => true, 'type' => 'string', 'location' => 'aws.query', 'minLength' => 1, - 'maxLength' => 512, + 'maxLength' => 64, ), - 'Marker' => array( - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 320, + ), + 'errorResponses' => array( + array( + 'reason' => 'The request was rejected because it referenced an entity that does not exist. The error message describes the entity.', + 'class' => 'NoSuchEntityException', ), - 'MaxItems' => array( - 'type' => 'numeric', - 'location' => 'aws.query', - 'minimum' => 1, - 'maximum' => 1000, + array( + 'reason' => 'The request processing has failed because of an unknown error, exception or failure.', + 'class' => 'ServiceFailureException', ), ), ), - 'ListGroupsForUser' => array( + 'GetOpenIDConnectProvider' => array( 'httpMethod' => 'POST', 'uri' => '/', 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'ListGroupsForUserResponse', + 'responseClass' => 'GetOpenIDConnectProviderResponse', 'responseType' => 'model', 'parameters' => array( 'Action' => array( 'static' => true, 'location' => 'aws.query', - 'default' => 'ListGroupsForUser', + 'default' => 'GetOpenIDConnectProvider', ), 'Version' => array( 'static' => true, 'location' => 'aws.query', 'default' => '2010-05-08', ), - 'UserName' => array( + 'OpenIDConnectProviderArn' => array( 'required' => true, 'type' => 'string', 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 128, - ), - 'Marker' => array( - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 320, - ), - 'MaxItems' => array( - 'type' => 'numeric', - 'location' => 'aws.query', - 'minimum' => 1, - 'maximum' => 1000, + 'minLength' => 20, + 'maxLength' => 2048, ), ), 'errorResponses' => array( + array( + 'reason' => 'The request was rejected because an invalid or out-of-range value was supplied for an input parameter.', + 'class' => 'InvalidInputException', + ), array( 'reason' => 'The request was rejected because it referenced an entity that does not exist. The error message describes the entity.', 'class' => 'NoSuchEntityException', ), + array( + 'reason' => 'The request processing has failed because of an unknown error, exception or failure.', + 'class' => 'ServiceFailureException', + ), ), ), - 'ListInstanceProfiles' => array( + 'GetPolicy' => array( 'httpMethod' => 'POST', 'uri' => '/', 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'ListInstanceProfilesResponse', + 'responseClass' => 'GetPolicyResponse', 'responseType' => 'model', 'parameters' => array( 'Action' => array( 'static' => true, 'location' => 'aws.query', - 'default' => 'ListInstanceProfiles', + 'default' => 'GetPolicy', ), 'Version' => array( 'static' => true, 'location' => 'aws.query', 'default' => '2010-05-08', ), - 'PathPrefix' => array( + 'PolicyArn' => array( + 'required' => true, 'type' => 'string', 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 512, + 'minLength' => 20, + 'maxLength' => 2048, ), - 'Marker' => array( - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 320, + ), + 'errorResponses' => array( + array( + 'reason' => 'The request was rejected because it referenced an entity that does not exist. The error message describes the entity.', + 'class' => 'NoSuchEntityException', ), - 'MaxItems' => array( - 'type' => 'numeric', - 'location' => 'aws.query', - 'minimum' => 1, - 'maximum' => 1000, + array( + 'reason' => 'The request was rejected because an invalid or out-of-range value was supplied for an input parameter.', + 'class' => 'InvalidInputException', + ), + array( + 'reason' => 'The request processing has failed because of an unknown error, exception or failure.', + 'class' => 'ServiceFailureException', ), ), ), - 'ListInstanceProfilesForRole' => array( + 'GetPolicyVersion' => array( 'httpMethod' => 'POST', 'uri' => '/', 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'ListInstanceProfilesForRoleResponse', + 'responseClass' => 'GetPolicyVersionResponse', 'responseType' => 'model', 'parameters' => array( 'Action' => array( 'static' => true, 'location' => 'aws.query', - 'default' => 'ListInstanceProfilesForRole', + 'default' => 'GetPolicyVersion', ), 'Version' => array( 'static' => true, 'location' => 'aws.query', 'default' => '2010-05-08', ), - 'RoleName' => array( + 'PolicyArn' => array( 'required' => true, 'type' => 'string', 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 64, + 'minLength' => 20, + 'maxLength' => 2048, ), - 'Marker' => array( + 'VersionId' => array( + 'required' => true, 'type' => 'string', 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 320, - ), - 'MaxItems' => array( - 'type' => 'numeric', - 'location' => 'aws.query', - 'minimum' => 1, - 'maximum' => 1000, ), ), 'errorResponses' => array( @@ -1987,42 +2619,39 @@ return array ( 'reason' => 'The request was rejected because it referenced an entity that does not exist. The error message describes the entity.', 'class' => 'NoSuchEntityException', ), + array( + 'reason' => 'The request was rejected because an invalid or out-of-range value was supplied for an input parameter.', + 'class' => 'InvalidInputException', + ), + array( + 'reason' => 'The request processing has failed because of an unknown error, exception or failure.', + 'class' => 'ServiceFailureException', + ), ), ), - 'ListMFADevices' => array( + 'GetRole' => array( 'httpMethod' => 'POST', 'uri' => '/', 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'ListMFADevicesResponse', + 'responseClass' => 'GetRoleResponse', 'responseType' => 'model', 'parameters' => array( 'Action' => array( 'static' => true, 'location' => 'aws.query', - 'default' => 'ListMFADevices', + 'default' => 'GetRole', ), 'Version' => array( 'static' => true, 'location' => 'aws.query', 'default' => '2010-05-08', ), - 'UserName' => array( - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 128, - ), - 'Marker' => array( + 'RoleName' => array( + 'required' => true, 'type' => 'string', 'location' => 'aws.query', 'minLength' => 1, - 'maxLength' => 320, - ), - 'MaxItems' => array( - 'type' => 'numeric', - 'location' => 'aws.query', - 'minimum' => 1, - 'maximum' => 1000, + 'maxLength' => 64, ), ), 'errorResponses' => array( @@ -2030,19 +2659,23 @@ return array ( 'reason' => 'The request was rejected because it referenced an entity that does not exist. The error message describes the entity.', 'class' => 'NoSuchEntityException', ), + array( + 'reason' => 'The request processing has failed because of an unknown error, exception or failure.', + 'class' => 'ServiceFailureException', + ), ), ), - 'ListRolePolicies' => array( + 'GetRolePolicy' => array( 'httpMethod' => 'POST', 'uri' => '/', 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'ListRolePoliciesResponse', + 'responseClass' => 'GetRolePolicyResponse', 'responseType' => 'model', 'parameters' => array( 'Action' => array( 'static' => true, 'location' => 'aws.query', - 'default' => 'ListRolePolicies', + 'default' => 'GetRolePolicy', ), 'Version' => array( 'static' => true, @@ -2056,17 +2689,12 @@ return array ( 'minLength' => 1, 'maxLength' => 64, ), - 'Marker' => array( + 'PolicyName' => array( + 'required' => true, 'type' => 'string', 'location' => 'aws.query', 'minLength' => 1, - 'maxLength' => 320, - ), - 'MaxItems' => array( - 'type' => 'numeric', - 'location' => 'aws.query', - 'minimum' => 1, - 'maximum' => 1000, + 'maxLength' => 128, ), ), 'errorResponses' => array( @@ -2074,112 +2702,134 @@ return array ( 'reason' => 'The request was rejected because it referenced an entity that does not exist. The error message describes the entity.', 'class' => 'NoSuchEntityException', ), + array( + 'reason' => 'The request processing has failed because of an unknown error, exception or failure.', + 'class' => 'ServiceFailureException', + ), ), ), - 'ListRoles' => array( + 'GetSAMLProvider' => array( 'httpMethod' => 'POST', 'uri' => '/', 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'ListRolesResponse', + 'responseClass' => 'GetSAMLProviderResponse', 'responseType' => 'model', 'parameters' => array( 'Action' => array( 'static' => true, 'location' => 'aws.query', - 'default' => 'ListRoles', + 'default' => 'GetSAMLProvider', ), 'Version' => array( 'static' => true, 'location' => 'aws.query', 'default' => '2010-05-08', ), - 'PathPrefix' => array( + 'SAMLProviderArn' => array( + 'required' => true, 'type' => 'string', 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 512, + 'minLength' => 20, + 'maxLength' => 2048, ), - 'Marker' => array( - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 320, + ), + 'errorResponses' => array( + array( + 'reason' => 'The request was rejected because it referenced an entity that does not exist. The error message describes the entity.', + 'class' => 'NoSuchEntityException', ), - 'MaxItems' => array( - 'type' => 'numeric', - 'location' => 'aws.query', - 'minimum' => 1, - 'maximum' => 1000, + array( + 'reason' => 'The request was rejected because an invalid or out-of-range value was supplied for an input parameter.', + 'class' => 'InvalidInputException', + ), + array( + 'reason' => 'The request processing has failed because of an unknown error, exception or failure.', + 'class' => 'ServiceFailureException', ), ), ), - 'ListSAMLProviders' => array( + 'GetServerCertificate' => array( 'httpMethod' => 'POST', 'uri' => '/', 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'ListSAMLProvidersResponse', + 'responseClass' => 'GetServerCertificateResponse', 'responseType' => 'model', 'parameters' => array( 'Action' => array( 'static' => true, 'location' => 'aws.query', - 'default' => 'ListSAMLProviders', + 'default' => 'GetServerCertificate', ), 'Version' => array( 'static' => true, 'location' => 'aws.query', 'default' => '2010-05-08', ), + 'ServerCertificateName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 1, + 'maxLength' => 128, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The request was rejected because it referenced an entity that does not exist. The error message describes the entity.', + 'class' => 'NoSuchEntityException', + ), + array( + 'reason' => 'The request processing has failed because of an unknown error, exception or failure.', + 'class' => 'ServiceFailureException', + ), ), ), - 'ListServerCertificates' => array( + 'GetUser' => array( 'httpMethod' => 'POST', 'uri' => '/', 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'ListServerCertificatesResponse', + 'responseClass' => 'GetUserResponse', 'responseType' => 'model', 'parameters' => array( 'Action' => array( 'static' => true, 'location' => 'aws.query', - 'default' => 'ListServerCertificates', + 'default' => 'GetUser', ), 'Version' => array( 'static' => true, 'location' => 'aws.query', 'default' => '2010-05-08', ), - 'PathPrefix' => array( + 'UserName' => array( 'type' => 'string', 'location' => 'aws.query', 'minLength' => 1, - 'maxLength' => 512, + 'maxLength' => 128, ), - 'Marker' => array( - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 320, + ), + 'errorResponses' => array( + array( + 'reason' => 'The request was rejected because it referenced an entity that does not exist. The error message describes the entity.', + 'class' => 'NoSuchEntityException', ), - 'MaxItems' => array( - 'type' => 'numeric', - 'location' => 'aws.query', - 'minimum' => 1, - 'maximum' => 1000, + array( + 'reason' => 'The request processing has failed because of an unknown error, exception or failure.', + 'class' => 'ServiceFailureException', ), ), ), - 'ListSigningCertificates' => array( + 'GetUserPolicy' => array( 'httpMethod' => 'POST', 'uri' => '/', 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'ListSigningCertificatesResponse', + 'responseClass' => 'GetUserPolicyResponse', 'responseType' => 'model', 'parameters' => array( 'Action' => array( 'static' => true, 'location' => 'aws.query', - 'default' => 'ListSigningCertificates', + 'default' => 'GetUserPolicy', ), 'Version' => array( 'static' => true, @@ -2187,22 +2837,18 @@ return array ( 'default' => '2010-05-08', ), 'UserName' => array( + 'required' => true, 'type' => 'string', 'location' => 'aws.query', 'minLength' => 1, 'maxLength' => 128, ), - 'Marker' => array( + 'PolicyName' => array( + 'required' => true, 'type' => 'string', 'location' => 'aws.query', 'minLength' => 1, - 'maxLength' => 320, - ), - 'MaxItems' => array( - 'type' => 'numeric', - 'location' => 'aws.query', - 'minimum' => 1, - 'maximum' => 1000, + 'maxLength' => 128, ), ), 'errorResponses' => array( @@ -2210,19 +2856,23 @@ return array ( 'reason' => 'The request was rejected because it referenced an entity that does not exist. The error message describes the entity.', 'class' => 'NoSuchEntityException', ), + array( + 'reason' => 'The request processing has failed because of an unknown error, exception or failure.', + 'class' => 'ServiceFailureException', + ), ), ), - 'ListUserPolicies' => array( + 'ListAccessKeys' => array( 'httpMethod' => 'POST', 'uri' => '/', 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'ListUserPoliciesResponse', + 'responseClass' => 'ListAccessKeysResponse', 'responseType' => 'model', 'parameters' => array( 'Action' => array( 'static' => true, 'location' => 'aws.query', - 'default' => 'ListUserPolicies', + 'default' => 'ListAccessKeys', ), 'Version' => array( 'static' => true, @@ -2230,7 +2880,6 @@ return array ( 'default' => '2010-05-08', ), 'UserName' => array( - 'required' => true, 'type' => 'string', 'location' => 'aws.query', 'minLength' => 1, @@ -2254,31 +2903,29 @@ return array ( 'reason' => 'The request was rejected because it referenced an entity that does not exist. The error message describes the entity.', 'class' => 'NoSuchEntityException', ), + array( + 'reason' => 'The request processing has failed because of an unknown error, exception or failure.', + 'class' => 'ServiceFailureException', + ), ), ), - 'ListUsers' => array( + 'ListAccountAliases' => array( 'httpMethod' => 'POST', 'uri' => '/', 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'ListUsersResponse', + 'responseClass' => 'ListAccountAliasesResponse', 'responseType' => 'model', 'parameters' => array( 'Action' => array( 'static' => true, 'location' => 'aws.query', - 'default' => 'ListUsers', + 'default' => 'ListAccountAliases', ), 'Version' => array( 'static' => true, 'location' => 'aws.query', 'default' => '2010-05-08', ), - 'PathPrefix' => array( - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 512, - ), 'Marker' => array( 'type' => 'string', 'location' => 'aws.query', @@ -2292,32 +2939,40 @@ return array ( 'maximum' => 1000, ), ), + 'errorResponses' => array( + array( + 'reason' => 'The request processing has failed because of an unknown error, exception or failure.', + 'class' => 'ServiceFailureException', + ), + ), ), - 'ListVirtualMFADevices' => array( + 'ListAttachedGroupPolicies' => array( 'httpMethod' => 'POST', 'uri' => '/', 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'ListVirtualMFADevicesResponse', + 'responseClass' => 'ListAttachedGroupPoliciesResponse', 'responseType' => 'model', 'parameters' => array( 'Action' => array( 'static' => true, 'location' => 'aws.query', - 'default' => 'ListVirtualMFADevices', + 'default' => 'ListAttachedGroupPolicies', ), 'Version' => array( 'static' => true, 'location' => 'aws.query', 'default' => '2010-05-08', ), - 'AssignmentStatus' => array( + 'GroupName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 1, + 'maxLength' => 128, + ), + 'PathPrefix' => array( 'type' => 'string', 'location' => 'aws.query', - 'enum' => array( - 'Assigned', - 'Unassigned', - 'Any', - ), ), 'Marker' => array( 'type' => 'string', @@ -2332,199 +2987,230 @@ return array ( 'maximum' => 1000, ), ), - ), - 'PutGroupPolicy' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EmptyOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, + 'errorResponses' => array( + array( + 'reason' => 'The request was rejected because it referenced an entity that does not exist. The error message describes the entity.', + 'class' => 'NoSuchEntityException', + ), + array( + 'reason' => 'The request was rejected because an invalid or out-of-range value was supplied for an input parameter.', + 'class' => 'InvalidInputException', + ), + array( + 'reason' => 'The request processing has failed because of an unknown error, exception or failure.', + 'class' => 'ServiceFailureException', + ), + ), + ), + 'ListAttachedRolePolicies' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'ListAttachedRolePoliciesResponse', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, 'location' => 'aws.query', - 'default' => 'PutGroupPolicy', + 'default' => 'ListAttachedRolePolicies', ), 'Version' => array( 'static' => true, 'location' => 'aws.query', 'default' => '2010-05-08', ), - 'GroupName' => array( + 'RoleName' => array( 'required' => true, 'type' => 'string', 'location' => 'aws.query', 'minLength' => 1, - 'maxLength' => 128, + 'maxLength' => 64, ), - 'PolicyName' => array( - 'required' => true, + 'PathPrefix' => array( 'type' => 'string', 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 128, ), - 'PolicyDocument' => array( - 'required' => true, + 'Marker' => array( 'type' => 'string', 'location' => 'aws.query', 'minLength' => 1, - 'maxLength' => 131072, + 'maxLength' => 320, + ), + 'MaxItems' => array( + 'type' => 'numeric', + 'location' => 'aws.query', + 'minimum' => 1, + 'maximum' => 1000, ), ), 'errorResponses' => array( array( - 'reason' => 'The request was rejected because it attempted to create resources beyond the current AWS account limits. The error message describes the limit exceeded.', - 'class' => 'LimitExceededException', + 'reason' => 'The request was rejected because it referenced an entity that does not exist. The error message describes the entity.', + 'class' => 'NoSuchEntityException', ), array( - 'reason' => 'The request was rejected because the policy document was malformed. The error message describes the specific error.', - 'class' => 'MalformedPolicyDocumentException', + 'reason' => 'The request was rejected because an invalid or out-of-range value was supplied for an input parameter.', + 'class' => 'InvalidInputException', ), array( - 'reason' => 'The request was rejected because it referenced an entity that does not exist. The error message describes the entity.', - 'class' => 'NoSuchEntityException', + 'reason' => 'The request processing has failed because of an unknown error, exception or failure.', + 'class' => 'ServiceFailureException', ), ), ), - 'PutRolePolicy' => array( + 'ListAttachedUserPolicies' => array( 'httpMethod' => 'POST', 'uri' => '/', 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EmptyOutput', + 'responseClass' => 'ListAttachedUserPoliciesResponse', 'responseType' => 'model', 'parameters' => array( 'Action' => array( 'static' => true, 'location' => 'aws.query', - 'default' => 'PutRolePolicy', + 'default' => 'ListAttachedUserPolicies', ), 'Version' => array( 'static' => true, 'location' => 'aws.query', 'default' => '2010-05-08', ), - 'RoleName' => array( + 'UserName' => array( 'required' => true, 'type' => 'string', 'location' => 'aws.query', 'minLength' => 1, 'maxLength' => 64, ), - 'PolicyName' => array( - 'required' => true, + 'PathPrefix' => array( 'type' => 'string', 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 128, ), - 'PolicyDocument' => array( - 'required' => true, + 'Marker' => array( 'type' => 'string', 'location' => 'aws.query', 'minLength' => 1, - 'maxLength' => 131072, + 'maxLength' => 320, + ), + 'MaxItems' => array( + 'type' => 'numeric', + 'location' => 'aws.query', + 'minimum' => 1, + 'maximum' => 1000, ), ), 'errorResponses' => array( array( - 'reason' => 'The request was rejected because it attempted to create resources beyond the current AWS account limits. The error message describes the limit exceeded.', - 'class' => 'LimitExceededException', + 'reason' => 'The request was rejected because it referenced an entity that does not exist. The error message describes the entity.', + 'class' => 'NoSuchEntityException', ), array( - 'reason' => 'The request was rejected because the policy document was malformed. The error message describes the specific error.', - 'class' => 'MalformedPolicyDocumentException', + 'reason' => 'The request was rejected because an invalid or out-of-range value was supplied for an input parameter.', + 'class' => 'InvalidInputException', ), array( - 'reason' => 'The request was rejected because it referenced an entity that does not exist. The error message describes the entity.', - 'class' => 'NoSuchEntityException', + 'reason' => 'The request processing has failed because of an unknown error, exception or failure.', + 'class' => 'ServiceFailureException', ), ), ), - 'PutUserPolicy' => array( + 'ListEntitiesForPolicy' => array( 'httpMethod' => 'POST', 'uri' => '/', 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EmptyOutput', + 'responseClass' => 'ListEntitiesForPolicyResponse', 'responseType' => 'model', 'parameters' => array( 'Action' => array( 'static' => true, 'location' => 'aws.query', - 'default' => 'PutUserPolicy', + 'default' => 'ListEntitiesForPolicy', ), 'Version' => array( 'static' => true, 'location' => 'aws.query', 'default' => '2010-05-08', ), - 'UserName' => array( + 'PolicyArn' => array( 'required' => true, 'type' => 'string', 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 128, + 'minLength' => 20, + 'maxLength' => 2048, ), - 'PolicyName' => array( - 'required' => true, + 'EntityFilter' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'PathPrefix' => array( 'type' => 'string', 'location' => 'aws.query', 'minLength' => 1, - 'maxLength' => 128, + 'maxLength' => 512, ), - 'PolicyDocument' => array( - 'required' => true, + 'Marker' => array( 'type' => 'string', 'location' => 'aws.query', 'minLength' => 1, - 'maxLength' => 131072, + 'maxLength' => 320, + ), + 'MaxItems' => array( + 'type' => 'numeric', + 'location' => 'aws.query', + 'minimum' => 1, + 'maximum' => 1000, ), ), 'errorResponses' => array( array( - 'reason' => 'The request was rejected because it attempted to create resources beyond the current AWS account limits. The error message describes the limit exceeded.', - 'class' => 'LimitExceededException', + 'reason' => 'The request was rejected because it referenced an entity that does not exist. The error message describes the entity.', + 'class' => 'NoSuchEntityException', ), array( - 'reason' => 'The request was rejected because the policy document was malformed. The error message describes the specific error.', - 'class' => 'MalformedPolicyDocumentException', + 'reason' => 'The request was rejected because an invalid or out-of-range value was supplied for an input parameter.', + 'class' => 'InvalidInputException', ), array( - 'reason' => 'The request was rejected because it referenced an entity that does not exist. The error message describes the entity.', - 'class' => 'NoSuchEntityException', + 'reason' => 'The request processing has failed because of an unknown error, exception or failure.', + 'class' => 'ServiceFailureException', ), ), ), - 'RemoveRoleFromInstanceProfile' => array( + 'ListGroupPolicies' => array( 'httpMethod' => 'POST', 'uri' => '/', 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EmptyOutput', + 'responseClass' => 'ListGroupPoliciesResponse', 'responseType' => 'model', 'parameters' => array( 'Action' => array( 'static' => true, 'location' => 'aws.query', - 'default' => 'RemoveRoleFromInstanceProfile', + 'default' => 'ListGroupPolicies', ), 'Version' => array( 'static' => true, 'location' => 'aws.query', 'default' => '2010-05-08', ), - 'InstanceProfileName' => array( + 'GroupName' => array( 'required' => true, 'type' => 'string', 'location' => 'aws.query', 'minLength' => 1, 'maxLength' => 128, ), - 'RoleName' => array( - 'required' => true, + 'Marker' => array( 'type' => 'string', 'location' => 'aws.query', 'minLength' => 1, - 'maxLength' => 64, + 'maxLength' => 320, + ), + 'MaxItems' => array( + 'type' => 'numeric', + 'location' => 'aws.query', + 'minimum' => 1, + 'maximum' => 1000, ), ), 'errorResponses' => array( @@ -2533,65 +3219,65 @@ return array ( 'class' => 'NoSuchEntityException', ), array( - 'reason' => 'The request was rejected because it attempted to create resources beyond the current AWS account limits. The error message describes the limit exceeded.', - 'class' => 'LimitExceededException', + 'reason' => 'The request processing has failed because of an unknown error, exception or failure.', + 'class' => 'ServiceFailureException', ), ), ), - 'RemoveUserFromGroup' => array( + 'ListGroups' => array( 'httpMethod' => 'POST', 'uri' => '/', 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EmptyOutput', + 'responseClass' => 'ListGroupsResponse', 'responseType' => 'model', 'parameters' => array( 'Action' => array( 'static' => true, 'location' => 'aws.query', - 'default' => 'RemoveUserFromGroup', + 'default' => 'ListGroups', ), 'Version' => array( 'static' => true, 'location' => 'aws.query', 'default' => '2010-05-08', ), - 'GroupName' => array( - 'required' => true, + 'PathPrefix' => array( 'type' => 'string', 'location' => 'aws.query', 'minLength' => 1, - 'maxLength' => 128, + 'maxLength' => 512, ), - 'UserName' => array( - 'required' => true, + 'Marker' => array( 'type' => 'string', 'location' => 'aws.query', 'minLength' => 1, - 'maxLength' => 128, + 'maxLength' => 320, + ), + 'MaxItems' => array( + 'type' => 'numeric', + 'location' => 'aws.query', + 'minimum' => 1, + 'maximum' => 1000, ), ), 'errorResponses' => array( array( - 'reason' => 'The request was rejected because it referenced an entity that does not exist. The error message describes the entity.', - 'class' => 'NoSuchEntityException', - ), - array( - 'reason' => 'The request was rejected because it attempted to create resources beyond the current AWS account limits. The error message describes the limit exceeded.', - 'class' => 'LimitExceededException', + 'reason' => 'The request processing has failed because of an unknown error, exception or failure.', + 'class' => 'ServiceFailureException', ), ), ), - 'ResyncMFADevice' => array( + 'ListGroupsForUser' => array( 'httpMethod' => 'POST', 'uri' => '/', 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EmptyOutput', + 'responseClass' => 'ListGroupsForUserResponse', 'responseType' => 'model', 'parameters' => array( 'Action' => array( 'static' => true, 'location' => 'aws.query', - 'default' => 'ResyncMFADevice', + 'default' => 'ListGroupsForUser', ), 'Version' => array( 'static' => true, @@ -2605,141 +3291,108 @@ return array ( 'minLength' => 1, 'maxLength' => 128, ), - 'SerialNumber' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 9, - 'maxLength' => 256, - ), - 'AuthenticationCode1' => array( - 'required' => true, + 'Marker' => array( 'type' => 'string', 'location' => 'aws.query', - 'minLength' => 6, - 'maxLength' => 6, + 'minLength' => 1, + 'maxLength' => 320, ), - 'AuthenticationCode2' => array( - 'required' => true, - 'type' => 'string', + 'MaxItems' => array( + 'type' => 'numeric', 'location' => 'aws.query', - 'minLength' => 6, - 'maxLength' => 6, + 'minimum' => 1, + 'maximum' => 1000, ), ), 'errorResponses' => array( - array( - 'reason' => 'The request was rejected because the authentication code was not recognized. The error message describes the specific error.', - 'class' => 'InvalidAuthenticationCodeException', - ), array( 'reason' => 'The request was rejected because it referenced an entity that does not exist. The error message describes the entity.', 'class' => 'NoSuchEntityException', ), array( - 'reason' => 'The request was rejected because it attempted to create resources beyond the current AWS account limits. The error message describes the limit exceeded.', - 'class' => 'LimitExceededException', + 'reason' => 'The request processing has failed because of an unknown error, exception or failure.', + 'class' => 'ServiceFailureException', ), ), ), - 'UpdateAccessKey' => array( + 'ListInstanceProfiles' => array( 'httpMethod' => 'POST', 'uri' => '/', 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EmptyOutput', + 'responseClass' => 'ListInstanceProfilesResponse', 'responseType' => 'model', 'parameters' => array( 'Action' => array( 'static' => true, 'location' => 'aws.query', - 'default' => 'UpdateAccessKey', + 'default' => 'ListInstanceProfiles', ), 'Version' => array( 'static' => true, 'location' => 'aws.query', 'default' => '2010-05-08', ), - 'UserName' => array( + 'PathPrefix' => array( 'type' => 'string', 'location' => 'aws.query', 'minLength' => 1, - 'maxLength' => 128, + 'maxLength' => 512, ), - 'AccessKeyId' => array( - 'required' => true, + 'Marker' => array( 'type' => 'string', 'location' => 'aws.query', - 'minLength' => 16, - 'maxLength' => 32, + 'minLength' => 1, + 'maxLength' => 320, ), - 'Status' => array( - 'required' => true, - 'type' => 'string', + 'MaxItems' => array( + 'type' => 'numeric', 'location' => 'aws.query', - 'enum' => array( - 'Active', - 'Inactive', - ), + 'minimum' => 1, + 'maximum' => 1000, ), ), 'errorResponses' => array( array( - 'reason' => 'The request was rejected because it referenced an entity that does not exist. The error message describes the entity.', - 'class' => 'NoSuchEntityException', - ), - array( - 'reason' => 'The request was rejected because it attempted to create resources beyond the current AWS account limits. The error message describes the limit exceeded.', - 'class' => 'LimitExceededException', + 'reason' => 'The request processing has failed because of an unknown error, exception or failure.', + 'class' => 'ServiceFailureException', ), ), ), - 'UpdateAccountPasswordPolicy' => array( + 'ListInstanceProfilesForRole' => array( 'httpMethod' => 'POST', 'uri' => '/', 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EmptyOutput', + 'responseClass' => 'ListInstanceProfilesForRoleResponse', 'responseType' => 'model', 'parameters' => array( 'Action' => array( 'static' => true, 'location' => 'aws.query', - 'default' => 'UpdateAccountPasswordPolicy', + 'default' => 'ListInstanceProfilesForRole', ), 'Version' => array( 'static' => true, 'location' => 'aws.query', 'default' => '2010-05-08', ), - 'MinimumPasswordLength' => array( - 'type' => 'numeric', + 'RoleName' => array( + 'required' => true, + 'type' => 'string', 'location' => 'aws.query', - 'minimum' => 6, - 'maximum' => 128, + 'minLength' => 1, + 'maxLength' => 64, ), - 'RequireSymbols' => array( - 'type' => 'boolean', - 'format' => 'boolean-string', + 'Marker' => array( + 'type' => 'string', 'location' => 'aws.query', + 'minLength' => 1, + 'maxLength' => 320, ), - 'RequireNumbers' => array( - 'type' => 'boolean', - 'format' => 'boolean-string', - 'location' => 'aws.query', - ), - 'RequireUppercaseCharacters' => array( - 'type' => 'boolean', - 'format' => 'boolean-string', - 'location' => 'aws.query', - ), - 'RequireLowercaseCharacters' => array( - 'type' => 'boolean', - 'format' => 'boolean-string', - 'location' => 'aws.query', - ), - 'AllowUsersToChangePassword' => array( - 'type' => 'boolean', - 'format' => 'boolean-string', + 'MaxItems' => array( + 'type' => 'numeric', 'location' => 'aws.query', + 'minimum' => 1, + 'maximum' => 1000, ), ), 'errorResponses' => array( @@ -2748,45 +3401,45 @@ return array ( 'class' => 'NoSuchEntityException', ), array( - 'reason' => 'The request was rejected because the policy document was malformed. The error message describes the specific error.', - 'class' => 'MalformedPolicyDocumentException', - ), - array( - 'reason' => 'The request was rejected because it attempted to create resources beyond the current AWS account limits. The error message describes the limit exceeded.', - 'class' => 'LimitExceededException', + 'reason' => 'The request processing has failed because of an unknown error, exception or failure.', + 'class' => 'ServiceFailureException', ), ), ), - 'UpdateAssumeRolePolicy' => array( + 'ListMFADevices' => array( 'httpMethod' => 'POST', 'uri' => '/', 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EmptyOutput', + 'responseClass' => 'ListMFADevicesResponse', 'responseType' => 'model', 'parameters' => array( 'Action' => array( 'static' => true, 'location' => 'aws.query', - 'default' => 'UpdateAssumeRolePolicy', + 'default' => 'ListMFADevices', ), 'Version' => array( 'static' => true, 'location' => 'aws.query', 'default' => '2010-05-08', ), - 'RoleName' => array( - 'required' => true, + 'UserName' => array( 'type' => 'string', 'location' => 'aws.query', 'minLength' => 1, - 'maxLength' => 64, + 'maxLength' => 128, ), - 'PolicyDocument' => array( - 'required' => true, + 'Marker' => array( 'type' => 'string', 'location' => 'aws.query', 'minLength' => 1, - 'maxLength' => 131072, + 'maxLength' => 320, + ), + 'MaxItems' => array( + 'type' => 'numeric', + 'location' => 'aws.query', + 'minimum' => 1, + 'maximum' => 1000, ), ), 'errorResponses' => array( @@ -2795,148 +3448,121 @@ return array ( 'class' => 'NoSuchEntityException', ), array( - 'reason' => 'The request was rejected because the policy document was malformed. The error message describes the specific error.', - 'class' => 'MalformedPolicyDocumentException', - ), - array( - 'reason' => 'The request was rejected because it attempted to create resources beyond the current AWS account limits. The error message describes the limit exceeded.', - 'class' => 'LimitExceededException', + 'reason' => 'The request processing has failed because of an unknown error, exception or failure.', + 'class' => 'ServiceFailureException', ), ), ), - 'UpdateGroup' => array( + 'ListOpenIDConnectProviders' => array( 'httpMethod' => 'POST', 'uri' => '/', 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EmptyOutput', + 'responseClass' => 'ListOpenIDConnectProvidersResponse', 'responseType' => 'model', 'parameters' => array( 'Action' => array( 'static' => true, 'location' => 'aws.query', - 'default' => 'UpdateGroup', + 'default' => 'ListOpenIDConnectProviders', ), 'Version' => array( 'static' => true, 'location' => 'aws.query', 'default' => '2010-05-08', ), - 'GroupName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 128, - ), - 'NewPath' => array( - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 512, - ), - 'NewGroupName' => array( - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 128, - ), ), 'errorResponses' => array( array( - 'reason' => 'The request was rejected because it referenced an entity that does not exist. The error message describes the entity.', - 'class' => 'NoSuchEntityException', - ), - array( - 'reason' => 'The request was rejected because it attempted to create a resource that already exists.', - 'class' => 'EntityAlreadyExistsException', - ), - array( - 'reason' => 'The request was rejected because it attempted to create resources beyond the current AWS account limits. The error message describes the limit exceeded.', - 'class' => 'LimitExceededException', + 'reason' => 'The request processing has failed because of an unknown error, exception or failure.', + 'class' => 'ServiceFailureException', ), ), ), - 'UpdateLoginProfile' => array( + 'ListPolicies' => array( 'httpMethod' => 'POST', 'uri' => '/', 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EmptyOutput', + 'responseClass' => 'ListPoliciesResponse', 'responseType' => 'model', 'parameters' => array( 'Action' => array( 'static' => true, 'location' => 'aws.query', - 'default' => 'UpdateLoginProfile', + 'default' => 'ListPolicies', ), 'Version' => array( 'static' => true, 'location' => 'aws.query', 'default' => '2010-05-08', ), - 'UserName' => array( - 'required' => true, + 'Scope' => array( 'type' => 'string', 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 64, ), - 'Password' => array( - 'required' => true, + 'OnlyAttached' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'PathPrefix' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'Marker' => array( 'type' => 'string', 'location' => 'aws.query', 'minLength' => 1, - 'maxLength' => 128, + 'maxLength' => 320, + ), + 'MaxItems' => array( + 'type' => 'numeric', + 'location' => 'aws.query', + 'minimum' => 1, + 'maximum' => 1000, ), ), 'errorResponses' => array( array( - 'reason' => 'The request was rejected because it referenced an entity that is temporarily unmodifiable, such as a user name that was deleted and then recreated. The error indicates that the request is likely to succeed if you try again after waiting several minutes. The error message describes the entity.', - 'class' => 'EntityTemporarilyUnmodifiableException', - ), - array( - 'reason' => 'The request was rejected because it referenced an entity that does not exist. The error message describes the entity.', - 'class' => 'NoSuchEntityException', - ), - array( - 'reason' => 'The request was rejected because the provided password did not meet the requirements imposed by the account password policy.', - 'class' => 'PasswordPolicyViolationException', - ), - array( - 'reason' => 'The request was rejected because it attempted to create resources beyond the current AWS account limits. The error message describes the limit exceeded.', - 'class' => 'LimitExceededException', + 'reason' => 'The request processing has failed because of an unknown error, exception or failure.', + 'class' => 'ServiceFailureException', ), ), ), - 'UpdateSAMLProvider' => array( + 'ListPolicyVersions' => array( 'httpMethod' => 'POST', 'uri' => '/', 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'UpdateSAMLProviderResponse', + 'responseClass' => 'ListPolicyVersionsResponse', 'responseType' => 'model', 'parameters' => array( 'Action' => array( 'static' => true, 'location' => 'aws.query', - 'default' => 'UpdateSAMLProvider', + 'default' => 'ListPolicyVersions', ), 'Version' => array( 'static' => true, 'location' => 'aws.query', 'default' => '2010-05-08', ), - 'SAMLMetadataDocument' => array( + 'PolicyArn' => array( 'required' => true, 'type' => 'string', 'location' => 'aws.query', - 'minLength' => 1000, - 'maxLength' => 10000000, + 'minLength' => 20, + 'maxLength' => 2048, ), - 'SAMLProviderArn' => array( - 'required' => true, + 'Marker' => array( 'type' => 'string', 'location' => 'aws.query', - 'minLength' => 20, - 'maxLength' => 2048, + 'minLength' => 1, + 'maxLength' => 320, + ), + 'MaxItems' => array( + 'type' => 'numeric', + 'location' => 'aws.query', + 'minimum' => 1, + 'maximum' => 1000, ), ), 'errorResponses' => array( @@ -2945,49 +3571,50 @@ return array ( 'class' => 'NoSuchEntityException', ), array( + 'reason' => 'The request was rejected because an invalid or out-of-range value was supplied for an input parameter.', 'class' => 'InvalidInputException', ), array( - 'reason' => 'The request was rejected because it attempted to create resources beyond the current AWS account limits. The error message describes the limit exceeded.', - 'class' => 'LimitExceededException', + 'reason' => 'The request processing has failed because of an unknown error, exception or failure.', + 'class' => 'ServiceFailureException', ), ), ), - 'UpdateServerCertificate' => array( + 'ListRolePolicies' => array( 'httpMethod' => 'POST', 'uri' => '/', 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EmptyOutput', + 'responseClass' => 'ListRolePoliciesResponse', 'responseType' => 'model', 'parameters' => array( 'Action' => array( 'static' => true, 'location' => 'aws.query', - 'default' => 'UpdateServerCertificate', + 'default' => 'ListRolePolicies', ), 'Version' => array( 'static' => true, 'location' => 'aws.query', 'default' => '2010-05-08', ), - 'ServerCertificateName' => array( + 'RoleName' => array( 'required' => true, 'type' => 'string', 'location' => 'aws.query', 'minLength' => 1, - 'maxLength' => 128, + 'maxLength' => 64, ), - 'NewPath' => array( + 'Marker' => array( 'type' => 'string', 'location' => 'aws.query', 'minLength' => 1, - 'maxLength' => 512, + 'maxLength' => 320, ), - 'NewServerCertificateName' => array( - 'type' => 'string', + 'MaxItems' => array( + 'type' => 'numeric', 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 128, + 'minimum' => 1, + 'maximum' => 1000, ), ), 'errorResponses' => array( @@ -2996,147 +3623,1321 @@ return array ( 'class' => 'NoSuchEntityException', ), array( - 'reason' => 'The request was rejected because it attempted to create a resource that already exists.', - 'class' => 'EntityAlreadyExistsException', - ), - array( - 'reason' => 'The request was rejected because it attempted to create resources beyond the current AWS account limits. The error message describes the limit exceeded.', - 'class' => 'LimitExceededException', + 'reason' => 'The request processing has failed because of an unknown error, exception or failure.', + 'class' => 'ServiceFailureException', ), ), ), - 'UpdateSigningCertificate' => array( + 'ListRoles' => array( 'httpMethod' => 'POST', 'uri' => '/', 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EmptyOutput', + 'responseClass' => 'ListRolesResponse', 'responseType' => 'model', 'parameters' => array( 'Action' => array( 'static' => true, 'location' => 'aws.query', - 'default' => 'UpdateSigningCertificate', + 'default' => 'ListRoles', ), 'Version' => array( 'static' => true, 'location' => 'aws.query', 'default' => '2010-05-08', ), - 'UserName' => array( + 'PathPrefix' => array( 'type' => 'string', 'location' => 'aws.query', 'minLength' => 1, - 'maxLength' => 128, + 'maxLength' => 512, ), - 'CertificateId' => array( - 'required' => true, + 'Marker' => array( 'type' => 'string', 'location' => 'aws.query', - 'minLength' => 24, - 'maxLength' => 128, + 'minLength' => 1, + 'maxLength' => 320, ), - 'Status' => array( - 'required' => true, - 'type' => 'string', + 'MaxItems' => array( + 'type' => 'numeric', 'location' => 'aws.query', - 'enum' => array( - 'Active', - 'Inactive', - ), + 'minimum' => 1, + 'maximum' => 1000, ), ), 'errorResponses' => array( array( - 'reason' => 'The request was rejected because it referenced an entity that does not exist. The error message describes the entity.', - 'class' => 'NoSuchEntityException', - ), - array( - 'reason' => 'The request was rejected because it attempted to create resources beyond the current AWS account limits. The error message describes the limit exceeded.', - 'class' => 'LimitExceededException', + 'reason' => 'The request processing has failed because of an unknown error, exception or failure.', + 'class' => 'ServiceFailureException', ), ), ), - 'UpdateUser' => array( + 'ListSAMLProviders' => array( 'httpMethod' => 'POST', 'uri' => '/', 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EmptyOutput', + 'responseClass' => 'ListSAMLProvidersResponse', 'responseType' => 'model', 'parameters' => array( 'Action' => array( 'static' => true, 'location' => 'aws.query', - 'default' => 'UpdateUser', + 'default' => 'ListSAMLProviders', ), 'Version' => array( 'static' => true, 'location' => 'aws.query', 'default' => '2010-05-08', ), - 'UserName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 128, - ), - 'NewPath' => array( - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 512, - ), - 'NewUserName' => array( - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 64, - ), ), 'errorResponses' => array( array( - 'reason' => 'The request was rejected because it referenced an entity that does not exist. The error message describes the entity.', - 'class' => 'NoSuchEntityException', - ), - array( - 'reason' => 'The request was rejected because it attempted to create resources beyond the current AWS account limits. The error message describes the limit exceeded.', - 'class' => 'LimitExceededException', - ), - array( - 'reason' => 'The request was rejected because it attempted to create a resource that already exists.', - 'class' => 'EntityAlreadyExistsException', - ), - array( - 'reason' => 'The request was rejected because it referenced an entity that is temporarily unmodifiable, such as a user name that was deleted and then recreated. The error indicates that the request is likely to succeed if you try again after waiting several minutes. The error message describes the entity.', - 'class' => 'EntityTemporarilyUnmodifiableException', + 'reason' => 'The request processing has failed because of an unknown error, exception or failure.', + 'class' => 'ServiceFailureException', ), ), ), - 'UploadServerCertificate' => array( + 'ListServerCertificates' => array( 'httpMethod' => 'POST', 'uri' => '/', 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'UploadServerCertificateResponse', + 'responseClass' => 'ListServerCertificatesResponse', 'responseType' => 'model', 'parameters' => array( 'Action' => array( 'static' => true, 'location' => 'aws.query', - 'default' => 'UploadServerCertificate', + 'default' => 'ListServerCertificates', ), 'Version' => array( 'static' => true, 'location' => 'aws.query', 'default' => '2010-05-08', ), - 'Path' => array( + 'PathPrefix' => array( 'type' => 'string', 'location' => 'aws.query', 'minLength' => 1, 'maxLength' => 512, ), - 'ServerCertificateName' => array( - 'required' => true, + 'Marker' => array( + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 1, + 'maxLength' => 320, + ), + 'MaxItems' => array( + 'type' => 'numeric', + 'location' => 'aws.query', + 'minimum' => 1, + 'maximum' => 1000, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The request processing has failed because of an unknown error, exception or failure.', + 'class' => 'ServiceFailureException', + ), + ), + ), + 'ListSigningCertificates' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'ListSigningCertificatesResponse', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'ListSigningCertificates', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2010-05-08', + ), + 'UserName' => array( + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 1, + 'maxLength' => 128, + ), + 'Marker' => array( + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 1, + 'maxLength' => 320, + ), + 'MaxItems' => array( + 'type' => 'numeric', + 'location' => 'aws.query', + 'minimum' => 1, + 'maximum' => 1000, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The request was rejected because it referenced an entity that does not exist. The error message describes the entity.', + 'class' => 'NoSuchEntityException', + ), + array( + 'reason' => 'The request processing has failed because of an unknown error, exception or failure.', + 'class' => 'ServiceFailureException', + ), + ), + ), + 'ListUserPolicies' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'ListUserPoliciesResponse', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'ListUserPolicies', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2010-05-08', + ), + 'UserName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 1, + 'maxLength' => 128, + ), + 'Marker' => array( + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 1, + 'maxLength' => 320, + ), + 'MaxItems' => array( + 'type' => 'numeric', + 'location' => 'aws.query', + 'minimum' => 1, + 'maximum' => 1000, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The request was rejected because it referenced an entity that does not exist. The error message describes the entity.', + 'class' => 'NoSuchEntityException', + ), + array( + 'reason' => 'The request processing has failed because of an unknown error, exception or failure.', + 'class' => 'ServiceFailureException', + ), + ), + ), + 'ListUsers' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'ListUsersResponse', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'ListUsers', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2010-05-08', + ), + 'PathPrefix' => array( + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 1, + 'maxLength' => 512, + ), + 'Marker' => array( + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 1, + 'maxLength' => 320, + ), + 'MaxItems' => array( + 'type' => 'numeric', + 'location' => 'aws.query', + 'minimum' => 1, + 'maximum' => 1000, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The request processing has failed because of an unknown error, exception or failure.', + 'class' => 'ServiceFailureException', + ), + ), + ), + 'ListVirtualMFADevices' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'ListVirtualMFADevicesResponse', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'ListVirtualMFADevices', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2010-05-08', + ), + 'AssignmentStatus' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'Marker' => array( + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 1, + 'maxLength' => 320, + ), + 'MaxItems' => array( + 'type' => 'numeric', + 'location' => 'aws.query', + 'minimum' => 1, + 'maximum' => 1000, + ), + ), + ), + 'PutGroupPolicy' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'EmptyOutput', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'PutGroupPolicy', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2010-05-08', + ), + 'GroupName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 1, + 'maxLength' => 128, + ), + 'PolicyName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 1, + 'maxLength' => 128, + ), + 'PolicyDocument' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 1, + 'maxLength' => 131072, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The request was rejected because it attempted to create resources beyond the current AWS account limits. The error message describes the limit exceeded.', + 'class' => 'LimitExceededException', + ), + array( + 'reason' => 'The request was rejected because the policy document was malformed. The error message describes the specific error.', + 'class' => 'MalformedPolicyDocumentException', + ), + array( + 'reason' => 'The request was rejected because it referenced an entity that does not exist. The error message describes the entity.', + 'class' => 'NoSuchEntityException', + ), + array( + 'reason' => 'The request processing has failed because of an unknown error, exception or failure.', + 'class' => 'ServiceFailureException', + ), + ), + ), + 'PutRolePolicy' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'EmptyOutput', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'PutRolePolicy', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2010-05-08', + ), + 'RoleName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 1, + 'maxLength' => 64, + ), + 'PolicyName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 1, + 'maxLength' => 128, + ), + 'PolicyDocument' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 1, + 'maxLength' => 131072, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The request was rejected because it attempted to create resources beyond the current AWS account limits. The error message describes the limit exceeded.', + 'class' => 'LimitExceededException', + ), + array( + 'reason' => 'The request was rejected because the policy document was malformed. The error message describes the specific error.', + 'class' => 'MalformedPolicyDocumentException', + ), + array( + 'reason' => 'The request was rejected because it referenced an entity that does not exist. The error message describes the entity.', + 'class' => 'NoSuchEntityException', + ), + array( + 'reason' => 'The request processing has failed because of an unknown error, exception or failure.', + 'class' => 'ServiceFailureException', + ), + ), + ), + 'PutUserPolicy' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'EmptyOutput', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'PutUserPolicy', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2010-05-08', + ), + 'UserName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 1, + 'maxLength' => 128, + ), + 'PolicyName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 1, + 'maxLength' => 128, + ), + 'PolicyDocument' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 1, + 'maxLength' => 131072, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The request was rejected because it attempted to create resources beyond the current AWS account limits. The error message describes the limit exceeded.', + 'class' => 'LimitExceededException', + ), + array( + 'reason' => 'The request was rejected because the policy document was malformed. The error message describes the specific error.', + 'class' => 'MalformedPolicyDocumentException', + ), + array( + 'reason' => 'The request was rejected because it referenced an entity that does not exist. The error message describes the entity.', + 'class' => 'NoSuchEntityException', + ), + array( + 'reason' => 'The request processing has failed because of an unknown error, exception or failure.', + 'class' => 'ServiceFailureException', + ), + ), + ), + 'RemoveClientIDFromOpenIDConnectProvider' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'EmptyOutput', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'RemoveClientIDFromOpenIDConnectProvider', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2010-05-08', + ), + 'OpenIDConnectProviderArn' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 20, + 'maxLength' => 2048, + ), + 'ClientID' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 1, + 'maxLength' => 255, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The request was rejected because an invalid or out-of-range value was supplied for an input parameter.', + 'class' => 'InvalidInputException', + ), + array( + 'reason' => 'The request was rejected because it referenced an entity that does not exist. The error message describes the entity.', + 'class' => 'NoSuchEntityException', + ), + array( + 'reason' => 'The request processing has failed because of an unknown error, exception or failure.', + 'class' => 'ServiceFailureException', + ), + ), + ), + 'RemoveRoleFromInstanceProfile' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'EmptyOutput', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'RemoveRoleFromInstanceProfile', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2010-05-08', + ), + 'InstanceProfileName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 1, + 'maxLength' => 128, + ), + 'RoleName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 1, + 'maxLength' => 64, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The request was rejected because it referenced an entity that does not exist. The error message describes the entity.', + 'class' => 'NoSuchEntityException', + ), + array( + 'reason' => 'The request was rejected because it attempted to create resources beyond the current AWS account limits. The error message describes the limit exceeded.', + 'class' => 'LimitExceededException', + ), + array( + 'reason' => 'The request processing has failed because of an unknown error, exception or failure.', + 'class' => 'ServiceFailureException', + ), + ), + ), + 'RemoveUserFromGroup' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'EmptyOutput', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'RemoveUserFromGroup', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2010-05-08', + ), + 'GroupName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 1, + 'maxLength' => 128, + ), + 'UserName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 1, + 'maxLength' => 128, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The request was rejected because it referenced an entity that does not exist. The error message describes the entity.', + 'class' => 'NoSuchEntityException', + ), + array( + 'reason' => 'The request was rejected because it attempted to create resources beyond the current AWS account limits. The error message describes the limit exceeded.', + 'class' => 'LimitExceededException', + ), + array( + 'reason' => 'The request processing has failed because of an unknown error, exception or failure.', + 'class' => 'ServiceFailureException', + ), + ), + ), + 'ResyncMFADevice' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'EmptyOutput', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'ResyncMFADevice', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2010-05-08', + ), + 'UserName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 1, + 'maxLength' => 128, + ), + 'SerialNumber' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 9, + 'maxLength' => 256, + ), + 'AuthenticationCode1' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 6, + 'maxLength' => 6, + ), + 'AuthenticationCode2' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 6, + 'maxLength' => 6, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The request was rejected because the authentication code was not recognized. The error message describes the specific error.', + 'class' => 'InvalidAuthenticationCodeException', + ), + array( + 'reason' => 'The request was rejected because it referenced an entity that does not exist. The error message describes the entity.', + 'class' => 'NoSuchEntityException', + ), + array( + 'reason' => 'The request was rejected because it attempted to create resources beyond the current AWS account limits. The error message describes the limit exceeded.', + 'class' => 'LimitExceededException', + ), + array( + 'reason' => 'The request processing has failed because of an unknown error, exception or failure.', + 'class' => 'ServiceFailureException', + ), + ), + ), + 'SetDefaultPolicyVersion' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'EmptyOutput', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'SetDefaultPolicyVersion', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2010-05-08', + ), + 'PolicyArn' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 20, + 'maxLength' => 2048, + ), + 'VersionId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The request was rejected because it referenced an entity that does not exist. The error message describes the entity.', + 'class' => 'NoSuchEntityException', + ), + array( + 'reason' => 'The request was rejected because an invalid or out-of-range value was supplied for an input parameter.', + 'class' => 'InvalidInputException', + ), + array( + 'reason' => 'The request was rejected because it attempted to create resources beyond the current AWS account limits. The error message describes the limit exceeded.', + 'class' => 'LimitExceededException', + ), + array( + 'reason' => 'The request processing has failed because of an unknown error, exception or failure.', + 'class' => 'ServiceFailureException', + ), + ), + ), + 'UpdateAccessKey' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'EmptyOutput', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'UpdateAccessKey', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2010-05-08', + ), + 'UserName' => array( + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 1, + 'maxLength' => 128, + ), + 'AccessKeyId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 16, + 'maxLength' => 32, + ), + 'Status' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The request was rejected because it referenced an entity that does not exist. The error message describes the entity.', + 'class' => 'NoSuchEntityException', + ), + array( + 'reason' => 'The request was rejected because it attempted to create resources beyond the current AWS account limits. The error message describes the limit exceeded.', + 'class' => 'LimitExceededException', + ), + array( + 'reason' => 'The request processing has failed because of an unknown error, exception or failure.', + 'class' => 'ServiceFailureException', + ), + ), + ), + 'UpdateAccountPasswordPolicy' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'EmptyOutput', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'UpdateAccountPasswordPolicy', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2010-05-08', + ), + 'MinimumPasswordLength' => array( + 'type' => 'numeric', + 'location' => 'aws.query', + 'minimum' => 6, + 'maximum' => 128, + ), + 'RequireSymbols' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'RequireNumbers' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'RequireUppercaseCharacters' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'RequireLowercaseCharacters' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'AllowUsersToChangePassword' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'MaxPasswordAge' => array( + 'type' => 'numeric', + 'location' => 'aws.query', + 'minimum' => 1, + 'maximum' => 1095, + ), + 'PasswordReusePrevention' => array( + 'type' => 'numeric', + 'location' => 'aws.query', + 'minimum' => 1, + 'maximum' => 24, + ), + 'HardExpiry' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The request was rejected because it referenced an entity that does not exist. The error message describes the entity.', + 'class' => 'NoSuchEntityException', + ), + array( + 'reason' => 'The request was rejected because the policy document was malformed. The error message describes the specific error.', + 'class' => 'MalformedPolicyDocumentException', + ), + array( + 'reason' => 'The request was rejected because it attempted to create resources beyond the current AWS account limits. The error message describes the limit exceeded.', + 'class' => 'LimitExceededException', + ), + array( + 'reason' => 'The request processing has failed because of an unknown error, exception or failure.', + 'class' => 'ServiceFailureException', + ), + ), + ), + 'UpdateAssumeRolePolicy' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'EmptyOutput', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'UpdateAssumeRolePolicy', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2010-05-08', + ), + 'RoleName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 1, + 'maxLength' => 64, + ), + 'PolicyDocument' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 1, + 'maxLength' => 131072, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The request was rejected because it referenced an entity that does not exist. The error message describes the entity.', + 'class' => 'NoSuchEntityException', + ), + array( + 'reason' => 'The request was rejected because the policy document was malformed. The error message describes the specific error.', + 'class' => 'MalformedPolicyDocumentException', + ), + array( + 'reason' => 'The request was rejected because it attempted to create resources beyond the current AWS account limits. The error message describes the limit exceeded.', + 'class' => 'LimitExceededException', + ), + array( + 'reason' => 'The request processing has failed because of an unknown error, exception or failure.', + 'class' => 'ServiceFailureException', + ), + ), + ), + 'UpdateGroup' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'EmptyOutput', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'UpdateGroup', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2010-05-08', + ), + 'GroupName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 1, + 'maxLength' => 128, + ), + 'NewPath' => array( + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 1, + 'maxLength' => 512, + ), + 'NewGroupName' => array( + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 1, + 'maxLength' => 128, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The request was rejected because it referenced an entity that does not exist. The error message describes the entity.', + 'class' => 'NoSuchEntityException', + ), + array( + 'reason' => 'The request was rejected because it attempted to create a resource that already exists.', + 'class' => 'EntityAlreadyExistsException', + ), + array( + 'reason' => 'The request was rejected because it attempted to create resources beyond the current AWS account limits. The error message describes the limit exceeded.', + 'class' => 'LimitExceededException', + ), + array( + 'reason' => 'The request processing has failed because of an unknown error, exception or failure.', + 'class' => 'ServiceFailureException', + ), + ), + ), + 'UpdateLoginProfile' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'EmptyOutput', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'UpdateLoginProfile', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2010-05-08', + ), + 'UserName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 1, + 'maxLength' => 64, + ), + 'Password' => array( + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 1, + 'maxLength' => 128, + ), + 'PasswordResetRequired' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The request was rejected because it referenced an entity that is temporarily unmodifiable, such as a user name that was deleted and then recreated. The error indicates that the request is likely to succeed if you try again after waiting several minutes. The error message describes the entity.', + 'class' => 'EntityTemporarilyUnmodifiableException', + ), + array( + 'reason' => 'The request was rejected because it referenced an entity that does not exist. The error message describes the entity.', + 'class' => 'NoSuchEntityException', + ), + array( + 'reason' => 'The request was rejected because the provided password did not meet the requirements imposed by the account password policy.', + 'class' => 'PasswordPolicyViolationException', + ), + array( + 'reason' => 'The request was rejected because it attempted to create resources beyond the current AWS account limits. The error message describes the limit exceeded.', + 'class' => 'LimitExceededException', + ), + array( + 'reason' => 'The request processing has failed because of an unknown error, exception or failure.', + 'class' => 'ServiceFailureException', + ), + ), + ), + 'UpdateOpenIDConnectProviderThumbprint' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'EmptyOutput', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'UpdateOpenIDConnectProviderThumbprint', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2010-05-08', + ), + 'OpenIDConnectProviderArn' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 20, + 'maxLength' => 2048, + ), + 'ThumbprintList' => array( + 'required' => true, + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'ThumbprintList.member', + 'items' => array( + 'name' => 'thumbprintType', + 'type' => 'string', + 'minLength' => 40, + 'maxLength' => 40, + ), + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The request was rejected because an invalid or out-of-range value was supplied for an input parameter.', + 'class' => 'InvalidInputException', + ), + array( + 'reason' => 'The request was rejected because it referenced an entity that does not exist. The error message describes the entity.', + 'class' => 'NoSuchEntityException', + ), + array( + 'reason' => 'The request processing has failed because of an unknown error, exception or failure.', + 'class' => 'ServiceFailureException', + ), + ), + ), + 'UpdateSAMLProvider' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'UpdateSAMLProviderResponse', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'UpdateSAMLProvider', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2010-05-08', + ), + 'SAMLMetadataDocument' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 1000, + 'maxLength' => 10000000, + ), + 'SAMLProviderArn' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 20, + 'maxLength' => 2048, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The request was rejected because it referenced an entity that does not exist. The error message describes the entity.', + 'class' => 'NoSuchEntityException', + ), + array( + 'reason' => 'The request was rejected because an invalid or out-of-range value was supplied for an input parameter.', + 'class' => 'InvalidInputException', + ), + array( + 'reason' => 'The request was rejected because it attempted to create resources beyond the current AWS account limits. The error message describes the limit exceeded.', + 'class' => 'LimitExceededException', + ), + array( + 'reason' => 'The request processing has failed because of an unknown error, exception or failure.', + 'class' => 'ServiceFailureException', + ), + ), + ), + 'UpdateServerCertificate' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'EmptyOutput', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'UpdateServerCertificate', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2010-05-08', + ), + 'ServerCertificateName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 1, + 'maxLength' => 128, + ), + 'NewPath' => array( + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 1, + 'maxLength' => 512, + ), + 'NewServerCertificateName' => array( + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 1, + 'maxLength' => 128, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The request was rejected because it referenced an entity that does not exist. The error message describes the entity.', + 'class' => 'NoSuchEntityException', + ), + array( + 'reason' => 'The request was rejected because it attempted to create a resource that already exists.', + 'class' => 'EntityAlreadyExistsException', + ), + array( + 'reason' => 'The request was rejected because it attempted to create resources beyond the current AWS account limits. The error message describes the limit exceeded.', + 'class' => 'LimitExceededException', + ), + array( + 'reason' => 'The request processing has failed because of an unknown error, exception or failure.', + 'class' => 'ServiceFailureException', + ), + ), + ), + 'UpdateSigningCertificate' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'EmptyOutput', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'UpdateSigningCertificate', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2010-05-08', + ), + 'UserName' => array( + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 1, + 'maxLength' => 128, + ), + 'CertificateId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 24, + 'maxLength' => 128, + ), + 'Status' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The request was rejected because it referenced an entity that does not exist. The error message describes the entity.', + 'class' => 'NoSuchEntityException', + ), + array( + 'reason' => 'The request was rejected because it attempted to create resources beyond the current AWS account limits. The error message describes the limit exceeded.', + 'class' => 'LimitExceededException', + ), + array( + 'reason' => 'The request processing has failed because of an unknown error, exception or failure.', + 'class' => 'ServiceFailureException', + ), + ), + ), + 'UpdateUser' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'EmptyOutput', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'UpdateUser', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2010-05-08', + ), + 'UserName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 1, + 'maxLength' => 128, + ), + 'NewPath' => array( + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 1, + 'maxLength' => 512, + ), + 'NewUserName' => array( + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 1, + 'maxLength' => 64, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The request was rejected because it referenced an entity that does not exist. The error message describes the entity.', + 'class' => 'NoSuchEntityException', + ), + array( + 'reason' => 'The request was rejected because it attempted to create resources beyond the current AWS account limits. The error message describes the limit exceeded.', + 'class' => 'LimitExceededException', + ), + array( + 'reason' => 'The request was rejected because it attempted to create a resource that already exists.', + 'class' => 'EntityAlreadyExistsException', + ), + array( + 'reason' => 'The request was rejected because it referenced an entity that is temporarily unmodifiable, such as a user name that was deleted and then recreated. The error indicates that the request is likely to succeed if you try again after waiting several minutes. The error message describes the entity.', + 'class' => 'EntityTemporarilyUnmodifiableException', + ), + array( + 'reason' => 'The request processing has failed because of an unknown error, exception or failure.', + 'class' => 'ServiceFailureException', + ), + ), + ), + 'UploadServerCertificate' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'UploadServerCertificateResponse', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'UploadServerCertificate', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2010-05-08', + ), + 'Path' => array( + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 1, + 'maxLength' => 512, + ), + 'ServerCertificateName' => array( + 'required' => true, 'type' => 'string', 'location' => 'aws.query', 'minLength' => 1, @@ -3180,6 +4981,10 @@ return array ( 'reason' => 'The request was rejected because the public key certificate and the private key do not match.', 'class' => 'KeyPairMismatchException', ), + array( + 'reason' => 'The request processing has failed because of an unknown error, exception or failure.', + 'class' => 'ServiceFailureException', + ), ), ), 'UploadSigningCertificate' => array( @@ -3238,6 +5043,10 @@ return array ( 'reason' => 'The request was rejected because it referenced an entity that does not exist. The error message describes the entity.', 'class' => 'NoSuchEntityException', ), + array( + 'reason' => 'The request processing has failed because of an unknown error, exception or failure.', + 'class' => 'ServiceFailureException', + ), ), ), ), @@ -3300,72 +5109,151 @@ return array ( ), ), ), - 'CreateInstanceProfileResponse' => array( + 'CreateInstanceProfileResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'InstanceProfile' => array( + 'type' => 'object', + 'location' => 'xml', + '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', + ), + ), + ), + ), + ), + ), + ), + ), + 'CreateLoginProfileResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'LoginProfile' => array( + 'type' => 'object', + 'location' => 'xml', + 'properties' => array( + 'UserName' => array( + 'type' => 'string', + ), + 'CreateDate' => array( + 'type' => 'string', + ), + 'PasswordResetRequired' => array( + 'type' => 'boolean', + ), + ), + ), + ), + ), + 'CreateOpenIDConnectProviderResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'OpenIDConnectProviderArn' => array( + 'type' => 'string', + 'location' => 'xml', + ), + ), + ), + 'CreatePolicyResponse' => array( 'type' => 'object', 'additionalProperties' => true, 'properties' => array( - 'InstanceProfile' => array( + 'Policy' => array( 'type' => 'object', 'location' => 'xml', 'properties' => array( - 'Path' => array( + 'PolicyName' => array( 'type' => 'string', ), - 'InstanceProfileName' => array( + 'PolicyId' => array( 'type' => 'string', ), - 'InstanceProfileId' => array( + 'Arn' => array( 'type' => 'string', ), - 'Arn' => array( + 'Path' => array( + 'type' => 'string', + ), + 'DefaultVersionId' => array( + 'type' => 'string', + ), + 'AttachmentCount' => array( + 'type' => 'numeric', + ), + 'IsAttachable' => array( + 'type' => 'boolean', + ), + 'Description' => 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', - ), - ), - ), + 'UpdateDate' => array( + 'type' => 'string', ), ), ), ), ), - 'CreateLoginProfileResponse' => array( + 'CreatePolicyVersionResponse' => array( 'type' => 'object', 'additionalProperties' => true, 'properties' => array( - 'LoginProfile' => array( + 'PolicyVersion' => array( 'type' => 'object', 'location' => 'xml', 'properties' => array( - 'UserName' => array( + 'Document' => array( + 'type' => 'string', + ), + 'VersionId' => array( 'type' => 'string', ), + 'IsDefaultVersion' => array( + 'type' => 'boolean', + ), 'CreateDate' => array( 'type' => 'string', ), @@ -3436,6 +5324,9 @@ return array ( 'CreateDate' => array( 'type' => 'string', ), + 'PasswordLastUsed' => array( + 'type' => 'string', + ), ), ), ), @@ -3472,16 +5363,373 @@ return array ( 'Arn' => array( 'type' => 'string', ), - 'CreateDate' => array( - 'type' => 'string', + 'CreateDate' => array( + 'type' => 'string', + ), + 'PasswordLastUsed' => array( + 'type' => 'string', + ), + ), + ), + 'EnableDate' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + 'GenerateCredentialReportResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'State' => array( + 'type' => 'string', + 'location' => 'xml', + ), + 'Description' => array( + 'type' => 'string', + 'location' => 'xml', + ), + ), + ), + 'GetAccessKeyLastUsedResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'UserName' => array( + 'type' => 'string', + 'location' => 'xml', + ), + 'AccessKeyLastUsed' => array( + 'type' => 'object', + 'location' => 'xml', + 'properties' => array( + 'LastUsedDate' => array( + 'type' => 'string', + ), + 'ServiceName' => array( + 'type' => 'string', + ), + 'Region' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + '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', + ), + ), + 'AttachedManagedPolicies' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'AttachedPolicy', + 'type' => 'object', + 'sentAs' => 'member', + 'properties' => array( + 'PolicyName' => array( + 'type' => 'string', + ), + 'PolicyArn' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + ), + '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', + ), + ), + ), + ), + 'AttachedManagedPolicies' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'AttachedPolicy', + 'type' => 'object', + 'sentAs' => 'member', + 'properties' => array( + 'PolicyName' => array( + 'type' => 'string', + ), + 'PolicyArn' => 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', + ), + ), + ), + ), + 'AttachedManagedPolicies' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'AttachedPolicy', + 'type' => 'object', + 'sentAs' => 'member', + 'properties' => array( + 'PolicyName' => array( + 'type' => 'string', + ), + 'PolicyArn' => array( + 'type' => 'string', + ), + ), ), ), ), - 'EnableDate' => array( - 'type' => 'string', + ), + ), + 'Policies' => array( + 'type' => 'array', + 'location' => 'xml', + 'items' => array( + 'name' => 'ManagedPolicyDetail', + 'type' => 'object', + 'sentAs' => 'member', + 'properties' => array( + 'PolicyName' => array( + 'type' => 'string', + ), + 'PolicyId' => array( + 'type' => 'string', + ), + 'Arn' => array( + 'type' => 'string', + ), + 'Path' => array( + 'type' => 'string', + ), + 'DefaultVersionId' => array( + 'type' => 'string', + ), + 'AttachmentCount' => array( + 'type' => 'numeric', + ), + 'IsAttachable' => array( + 'type' => 'boolean', + ), + 'Description' => array( + 'type' => 'string', + ), + 'CreateDate' => array( + 'type' => 'string', + ), + 'UpdateDate' => array( + 'type' => 'string', + ), + 'PolicyVersionList' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'PolicyVersion', + 'type' => 'object', + 'sentAs' => 'member', + 'properties' => array( + 'Document' => array( + 'type' => 'string', + ), + 'VersionId' => array( + 'type' => 'string', + ), + 'IsDefaultVersion' => array( + 'type' => 'boolean', + ), + 'CreateDate' => array( + 'type' => 'string', + ), + ), + ), + ), ), ), ), + 'IsTruncated' => array( + 'type' => 'boolean', + 'location' => 'xml', + ), + 'Marker' => array( + 'type' => 'string', + 'location' => 'xml', + ), ), ), 'GetAccountPasswordPolicyResponse' => array( @@ -3516,6 +5764,12 @@ return array ( 'MaxPasswordAge' => array( 'type' => 'numeric', ), + 'PasswordReusePrevention' => array( + 'type' => 'numeric', + ), + 'HardExpiry' => array( + 'type' => 'boolean', + ), ), ), ), @@ -3543,6 +5797,17 @@ return array ( 'MFADevices', 'MFADevicesInUse', 'AccountMFAEnabled', + 'AccountAccessKeysPresent', + 'AccountSigningCertificatesPresent', + 'AttachedPoliciesPerGroupQuota', + 'AttachedPoliciesPerRoleQuota', + 'AttachedPoliciesPerUserQuota', + 'Policies', + 'PoliciesQuota', + 'PolicySizeQuota', + 'PolicyVersionsInUse', + 'PolicyVersionsInUseQuota', + 'VersionsPerPolicyQuota', ), ), 'filters' => array( @@ -3574,6 +5839,24 @@ return array ( ), ), ), + 'GetCredentialReportResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'Content' => array( + 'type' => 'string', + 'location' => 'xml', + ), + 'ReportFormat' => array( + 'type' => 'string', + 'location' => 'xml', + ), + 'GeneratedTime' => array( + 'type' => 'string', + 'location' => 'xml', + ), + ), + ), 'GetGroupResponse' => array( 'type' => 'object', 'additionalProperties' => true, @@ -3622,6 +5905,9 @@ return array ( 'CreateDate' => array( 'type' => 'string', ), + 'PasswordLastUsed' => array( + 'type' => 'string', + ), ), ), ), @@ -3722,6 +6008,107 @@ return array ( 'CreateDate' => array( 'type' => 'string', ), + 'PasswordResetRequired' => array( + 'type' => 'boolean', + ), + ), + ), + ), + ), + 'GetOpenIDConnectProviderResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'Url' => array( + 'type' => 'string', + 'location' => 'xml', + ), + 'ClientIDList' => array( + 'type' => 'array', + 'location' => 'xml', + 'items' => array( + 'name' => 'clientIDType', + 'type' => 'string', + 'sentAs' => 'member', + ), + ), + 'ThumbprintList' => array( + 'type' => 'array', + 'location' => 'xml', + 'items' => array( + 'name' => 'thumbprintType', + 'type' => 'string', + 'sentAs' => 'member', + ), + ), + 'CreateDate' => array( + 'type' => 'string', + 'location' => 'xml', + ), + ), + ), + 'GetPolicyResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'Policy' => array( + 'type' => 'object', + 'location' => 'xml', + 'properties' => array( + 'PolicyName' => array( + 'type' => 'string', + ), + 'PolicyId' => array( + 'type' => 'string', + ), + 'Arn' => array( + 'type' => 'string', + ), + 'Path' => array( + 'type' => 'string', + ), + 'DefaultVersionId' => array( + 'type' => 'string', + ), + 'AttachmentCount' => array( + 'type' => 'numeric', + ), + 'IsAttachable' => array( + 'type' => 'boolean', + ), + 'Description' => array( + 'type' => 'string', + ), + 'CreateDate' => array( + 'type' => 'string', + ), + 'UpdateDate' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + 'GetPolicyVersionResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'PolicyVersion' => array( + 'type' => 'object', + 'location' => 'xml', + 'properties' => array( + 'Document' => array( + 'type' => 'string', + ), + 'VersionId' => array( + 'type' => 'string', + ), + 'IsDefaultVersion' => array( + 'type' => 'boolean', + ), + 'CreateDate' => array( + 'type' => 'string', + ), ), ), ), @@ -3818,6 +6205,9 @@ return array ( 'UploadDate' => array( 'type' => 'string', ), + 'Expiration' => array( + 'type' => 'string', + ), ), ), 'CertificateBody' => array( @@ -3830,73 +6220,192 @@ return array ( ), ), ), - 'GetUserResponse' => array( + 'GetUserResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'User' => array( + 'type' => 'object', + 'location' => 'xml', + 'properties' => array( + 'Path' => array( + 'type' => 'string', + ), + 'UserName' => array( + 'type' => 'string', + ), + 'UserId' => array( + 'type' => 'string', + ), + 'Arn' => array( + 'type' => 'string', + ), + 'CreateDate' => array( + 'type' => 'string', + ), + 'PasswordLastUsed' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + 'GetUserPolicyResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'UserName' => array( + 'type' => 'string', + 'location' => 'xml', + ), + 'PolicyName' => array( + 'type' => 'string', + 'location' => 'xml', + ), + 'PolicyDocument' => array( + 'type' => 'string', + 'location' => 'xml', + ), + ), + ), + 'ListAccessKeysResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'AccessKeyMetadata' => array( + 'type' => 'array', + 'location' => 'xml', + 'items' => array( + 'name' => 'AccessKeyMetadata', + 'type' => 'object', + 'sentAs' => 'member', + 'properties' => array( + 'UserName' => array( + 'type' => 'string', + ), + 'AccessKeyId' => array( + 'type' => 'string', + ), + 'Status' => array( + 'type' => 'string', + ), + 'CreateDate' => array( + 'type' => 'string', + ), + ), + ), + ), + 'IsTruncated' => array( + 'type' => 'boolean', + 'location' => 'xml', + ), + 'Marker' => array( + 'type' => 'string', + 'location' => 'xml', + ), + ), + ), + 'ListAccountAliasesResponse' => array( 'type' => 'object', 'additionalProperties' => true, 'properties' => array( - 'User' => array( - 'type' => 'object', + 'AccountAliases' => array( + 'type' => 'array', 'location' => 'xml', - 'properties' => array( - 'Path' => array( - 'type' => 'string', - ), - 'UserName' => array( - 'type' => 'string', - ), - 'UserId' => array( - 'type' => 'string', - ), - 'Arn' => array( - 'type' => 'string', - ), - 'CreateDate' => array( - 'type' => 'string', - ), + 'items' => array( + 'name' => 'accountAliasType', + 'type' => 'string', + 'sentAs' => 'member', ), ), + 'IsTruncated' => array( + 'type' => 'boolean', + 'location' => 'xml', + ), + 'Marker' => array( + 'type' => 'string', + 'location' => 'xml', + ), ), ), - 'GetUserPolicyResponse' => array( + 'ListAttachedGroupPoliciesResponse' => array( 'type' => 'object', 'additionalProperties' => true, 'properties' => array( - 'UserName' => array( - 'type' => 'string', + 'AttachedPolicies' => array( + 'type' => 'array', 'location' => 'xml', + 'items' => array( + 'name' => 'AttachedPolicy', + 'type' => 'object', + 'sentAs' => 'member', + 'properties' => array( + 'PolicyName' => array( + 'type' => 'string', + ), + 'PolicyArn' => array( + 'type' => 'string', + ), + ), + ), ), - 'PolicyName' => array( - 'type' => 'string', + 'IsTruncated' => array( + 'type' => 'boolean', 'location' => 'xml', ), - 'PolicyDocument' => array( + 'Marker' => array( 'type' => 'string', 'location' => 'xml', ), ), ), - 'ListAccessKeysResponse' => array( + 'ListAttachedRolePoliciesResponse' => array( 'type' => 'object', 'additionalProperties' => true, 'properties' => array( - 'AccessKeyMetadata' => array( + 'AttachedPolicies' => array( 'type' => 'array', 'location' => 'xml', 'items' => array( - 'name' => 'AccessKeyMetadata', + 'name' => 'AttachedPolicy', 'type' => 'object', 'sentAs' => 'member', 'properties' => array( - 'UserName' => array( + 'PolicyName' => array( 'type' => 'string', ), - 'AccessKeyId' => array( + 'PolicyArn' => array( 'type' => 'string', ), - 'Status' => array( + ), + ), + ), + 'IsTruncated' => array( + 'type' => 'boolean', + 'location' => 'xml', + ), + 'Marker' => array( + 'type' => 'string', + 'location' => 'xml', + ), + ), + ), + 'ListAttachedUserPoliciesResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'AttachedPolicies' => array( + 'type' => 'array', + 'location' => 'xml', + 'items' => array( + 'name' => 'AttachedPolicy', + 'type' => 'object', + 'sentAs' => 'member', + 'properties' => array( + 'PolicyName' => array( 'type' => 'string', ), - 'CreateDate' => array( + 'PolicyArn' => array( 'type' => 'string', ), ), @@ -3912,17 +6421,50 @@ return array ( ), ), ), - 'ListAccountAliasesResponse' => array( + 'ListEntitiesForPolicyResponse' => array( 'type' => 'object', 'additionalProperties' => true, 'properties' => array( - 'AccountAliases' => array( + 'PolicyGroups' => array( 'type' => 'array', 'location' => 'xml', 'items' => array( - 'name' => 'accountAliasType', - 'type' => 'string', + 'name' => 'PolicyGroup', + 'type' => 'object', + 'sentAs' => 'member', + 'properties' => array( + 'GroupName' => array( + 'type' => 'string', + ), + ), + ), + ), + 'PolicyUsers' => array( + 'type' => 'array', + 'location' => 'xml', + 'items' => array( + 'name' => 'PolicyUser', + 'type' => 'object', + 'sentAs' => 'member', + 'properties' => array( + 'UserName' => array( + 'type' => 'string', + ), + ), + ), + ), + 'PolicyRoles' => array( + 'type' => 'array', + 'location' => 'xml', + 'items' => array( + 'name' => 'PolicyRole', + 'type' => 'object', 'sentAs' => 'member', + 'properties' => array( + 'RoleName' => array( + 'type' => 'string', + ), + ), ), ), 'IsTruncated' => array( @@ -4208,6 +6750,118 @@ return array ( ), ), ), + 'ListOpenIDConnectProvidersResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'OpenIDConnectProviderList' => array( + 'type' => 'array', + 'location' => 'xml', + 'items' => array( + 'name' => 'OpenIDConnectProviderListEntry', + 'type' => 'object', + 'sentAs' => 'member', + 'properties' => array( + 'Arn' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + 'ListPoliciesResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'Policies' => array( + 'type' => 'array', + 'location' => 'xml', + 'items' => array( + 'name' => 'Policy', + 'type' => 'object', + 'sentAs' => 'member', + 'properties' => array( + 'PolicyName' => array( + 'type' => 'string', + ), + 'PolicyId' => array( + 'type' => 'string', + ), + 'Arn' => array( + 'type' => 'string', + ), + 'Path' => array( + 'type' => 'string', + ), + 'DefaultVersionId' => array( + 'type' => 'string', + ), + 'AttachmentCount' => array( + 'type' => 'numeric', + ), + 'IsAttachable' => array( + 'type' => 'boolean', + ), + 'Description' => array( + 'type' => 'string', + ), + 'CreateDate' => array( + 'type' => 'string', + ), + 'UpdateDate' => array( + 'type' => 'string', + ), + ), + ), + ), + 'IsTruncated' => array( + 'type' => 'boolean', + 'location' => 'xml', + ), + 'Marker' => array( + 'type' => 'string', + 'location' => 'xml', + ), + ), + ), + 'ListPolicyVersionsResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'Versions' => array( + 'type' => 'array', + 'location' => 'xml', + 'items' => array( + 'name' => 'PolicyVersion', + 'type' => 'object', + 'sentAs' => 'member', + 'properties' => array( + 'Document' => array( + 'type' => 'string', + ), + 'VersionId' => array( + 'type' => 'string', + ), + 'IsDefaultVersion' => array( + 'type' => 'boolean', + ), + 'CreateDate' => array( + 'type' => 'string', + ), + ), + ), + ), + 'IsTruncated' => array( + 'type' => 'boolean', + 'location' => 'xml', + ), + 'Marker' => array( + 'type' => 'string', + 'location' => 'xml', + ), + ), + ), 'ListRolePoliciesResponse' => array( 'type' => 'object', 'additionalProperties' => true, @@ -4327,6 +6981,9 @@ return array ( 'UploadDate' => array( 'type' => 'string', ), + 'Expiration' => array( + 'type' => 'string', + ), ), ), ), @@ -4430,6 +7087,9 @@ return array ( 'CreateDate' => array( 'type' => 'string', ), + 'PasswordLastUsed' => array( + 'type' => 'string', + ), ), ), ), @@ -4482,6 +7142,9 @@ return array ( 'CreateDate' => array( 'type' => 'string', ), + 'PasswordLastUsed' => array( + 'type' => 'string', + ), ), ), 'EnableDate' => array( @@ -4533,6 +7196,9 @@ return array ( 'UploadDate' => array( 'type' => 'string', ), + 'Expiration' => array( + 'type' => 'string', + ), ), ), ), @@ -4566,122 +7232,126 @@ return array ( ), ), 'iterators' => array( - 'operations' => array( - 'GetGroup' => array( - 'token_param' => 'Marker', - 'token_key' => 'Marker', - 'more_key' => 'IsTruncated', - 'limit_key' => 'MaxItems', - 'result_key' => 'Users', - ), - 'ListAccessKeys' => array( - 'token_param' => 'Marker', - 'token_key' => 'Marker', - 'more_key' => 'IsTruncated', - 'limit_key' => 'MaxItems', - 'result_key' => 'AccessKeyMetadata', - ), - 'ListAccountAliases' => array( - 'token_param' => 'Marker', - 'token_key' => 'Marker', - 'more_key' => 'IsTruncated', - 'limit_key' => 'MaxItems', - 'result_key' => 'AccountAliases', - ), - 'ListGroupPolicies' => array( - 'token_param' => 'Marker', - 'token_key' => 'Marker', - 'more_key' => 'IsTruncated', - 'limit_key' => 'MaxItems', - 'result_key' => 'PolicyNames', - ), - 'ListGroups' => array( - 'token_param' => 'Marker', - 'token_key' => 'Marker', - 'more_key' => 'IsTruncated', - 'limit_key' => 'MaxItems', - 'result_key' => 'Groups', - ), - 'ListGroupsForUser' => array( - 'token_param' => 'Marker', - 'token_key' => 'Marker', - 'more_key' => 'IsTruncated', - 'limit_key' => 'MaxItems', - 'result_key' => 'Groups', - ), - 'ListInstanceProfiles' => array( - 'token_param' => 'Marker', - 'token_key' => 'Marker', - 'more_key' => 'IsTruncated', - 'limit_key' => 'MaxItems', - 'result_key' => 'InstanceProfiles', - ), - 'ListInstanceProfilesForRole' => array( - 'token_param' => 'Marker', - 'token_key' => 'Marker', - 'more_key' => 'IsTruncated', - 'limit_key' => 'MaxItems', - 'result_key' => 'InstanceProfiles', - ), - 'ListMFADevices' => array( - 'token_param' => 'Marker', - 'token_key' => 'Marker', - 'more_key' => 'IsTruncated', - 'limit_key' => 'MaxItems', - 'result_key' => 'MFADevices', - ), - 'ListRolePolicies' => array( - 'token_param' => 'Marker', - 'token_key' => 'Marker', - 'more_key' => 'IsTruncated', - 'limit_key' => 'MaxItems', - 'result_key' => 'PolicyNames', - ), - 'ListRoles' => array( - 'token_param' => 'Marker', - 'token_key' => 'Marker', - 'more_key' => 'IsTruncated', - 'limit_key' => 'MaxItems', - 'result_key' => 'Roles', - ), - 'ListSAMLProviders' => array( - 'result_key' => 'SAMLProviderList', - ), - 'ListServerCertificates' => array( - 'token_param' => 'Marker', - 'token_key' => 'Marker', - 'more_key' => 'IsTruncated', - 'limit_key' => 'MaxItems', - 'result_key' => 'ServerCertificateMetadataList', - ), - 'ListSigningCertificates' => array( - 'token_param' => 'Marker', - 'token_key' => 'Marker', - 'more_key' => 'IsTruncated', - 'limit_key' => 'MaxItems', - 'result_key' => 'Certificates', - ), - 'ListUserPolicies' => array( - 'token_param' => 'Marker', - 'token_key' => 'Marker', - 'more_key' => 'IsTruncated', - 'limit_key' => 'MaxItems', - 'result_key' => 'PolicyNames', - ), - 'ListUsers' => array( - 'token_param' => 'Marker', - 'token_key' => 'Marker', - 'more_key' => 'IsTruncated', - 'limit_key' => 'MaxItems', - 'result_key' => 'Users', - ), - 'ListVirtualMFADevices' => array( - 'token_param' => 'Marker', - 'token_key' => 'Marker', - 'more_key' => 'IsTruncated', - 'limit_key' => 'MaxItems', - 'result_key' => 'VirtualMFADevices', - ), + 'GetGroup' => array( + 'input_token' => 'Marker', + 'output_token' => 'Marker', + 'more_results' => 'IsTruncated', + 'limit_key' => 'MaxItems', + 'result_key' => 'Users', + ), + 'ListAccessKeys' => array( + 'input_token' => 'Marker', + 'output_token' => 'Marker', + 'more_results' => 'IsTruncated', + 'limit_key' => 'MaxItems', + 'result_key' => 'AccessKeyMetadata', + ), + 'ListAccountAliases' => array( + 'input_token' => 'Marker', + 'output_token' => 'Marker', + 'more_results' => 'IsTruncated', + 'limit_key' => 'MaxItems', + 'result_key' => 'AccountAliases', + ), + 'ListGroupPolicies' => array( + 'input_token' => 'Marker', + 'output_token' => 'Marker', + 'more_results' => 'IsTruncated', + 'limit_key' => 'MaxItems', + 'result_key' => 'PolicyNames', + ), + 'ListGroups' => array( + 'input_token' => 'Marker', + 'output_token' => 'Marker', + 'more_results' => 'IsTruncated', + 'limit_key' => 'MaxItems', + 'result_key' => 'Groups', + ), + 'ListGroupsForUser' => array( + 'input_token' => 'Marker', + 'output_token' => 'Marker', + 'more_results' => 'IsTruncated', + 'limit_key' => 'MaxItems', + 'result_key' => 'Groups', + ), + 'ListInstanceProfiles' => array( + 'input_token' => 'Marker', + 'output_token' => 'Marker', + 'more_results' => 'IsTruncated', + 'limit_key' => 'MaxItems', + 'result_key' => 'InstanceProfiles', + ), + 'ListInstanceProfilesForRole' => array( + 'input_token' => 'Marker', + 'output_token' => 'Marker', + 'more_results' => 'IsTruncated', + 'limit_key' => 'MaxItems', + 'result_key' => 'InstanceProfiles', + ), + 'ListMFADevices' => array( + 'input_token' => 'Marker', + 'output_token' => 'Marker', + 'more_results' => 'IsTruncated', + 'limit_key' => 'MaxItems', + 'result_key' => 'MFADevices', + ), + 'ListRolePolicies' => array( + 'input_token' => 'Marker', + 'output_token' => 'Marker', + 'more_results' => 'IsTruncated', + 'limit_key' => 'MaxItems', + 'result_key' => 'PolicyNames', + ), + 'ListRoles' => array( + 'input_token' => 'Marker', + 'output_token' => 'Marker', + 'more_results' => 'IsTruncated', + 'limit_key' => 'MaxItems', + 'result_key' => 'Roles', + ), + 'ListSAMLProviders' => array( + 'result_key' => 'SAMLProviderList', + ), + 'ListServerCertificates' => array( + 'input_token' => 'Marker', + 'output_token' => 'Marker', + 'more_results' => 'IsTruncated', + 'limit_key' => 'MaxItems', + 'result_key' => 'ServerCertificateMetadataList', + ), + 'ListSigningCertificates' => array( + 'input_token' => 'Marker', + 'output_token' => 'Marker', + 'more_results' => 'IsTruncated', + 'limit_key' => 'MaxItems', + 'result_key' => 'Certificates', + ), + 'ListUserPolicies' => array( + 'input_token' => 'Marker', + 'output_token' => 'Marker', + 'more_results' => 'IsTruncated', + 'limit_key' => 'MaxItems', + 'result_key' => 'PolicyNames', + ), + 'ListUsers' => array( + 'input_token' => 'Marker', + 'output_token' => 'Marker', + 'more_results' => 'IsTruncated', + 'limit_key' => 'MaxItems', + 'result_key' => 'Users', + ), + 'ListVirtualMFADevices' => array( + 'input_token' => 'Marker', + 'output_token' => 'Marker', + 'more_results' => 'IsTruncated', + 'limit_key' => 'MaxItems', + 'result_key' => 'VirtualMFADevices', + ), + 'GetAccountAuthorizationDetails' => array( + 'input_token' => 'Marker', + 'output_token' => 'Marker', + 'more_results' => 'IsTruncated', + 'limit_key' => 'MaxItems', ), ), ); diff --git a/inc/aws-sdk/Aws/ImportExport/ImportExportClient.php b/inc/aws-sdk/Aws/ImportExport/ImportExportClient.php index 6220aba..2d9400c 100755 --- a/inc/aws-sdk/Aws/ImportExport/ImportExportClient.php +++ b/inc/aws-sdk/Aws/ImportExport/ImportExportClient.php @@ -28,13 +28,14 @@ use Guzzle\Service\Resource\ResourceIteratorInterface; * * @method Model cancelJob(array $args = array()) {@command ImportExport CancelJob} * @method Model createJob(array $args = array()) {@command ImportExport CreateJob} + * @method Model getShippingLabel(array $args = array()) {@command ImportExport GetShippingLabel} * @method Model getStatus(array $args = array()) {@command ImportExport GetStatus} * @method Model listJobs(array $args = array()) {@command ImportExport ListJobs} * @method Model updateJob(array $args = array()) {@command ImportExport UpdateJob} * @method ResourceIteratorInterface getListJobsIterator(array $args = array()) The input array uses the parameters of the ListJobs operation * - * @link http://docs.aws.amazon.com/aws-sdk-php/guide/latest/service-importexport.html User guide - * @link http://docs.aws.amazon.com/aws-sdk-php/latest/class-Aws.ImportExport.ImportExportClient.html API docs + * @link http://docs.aws.amazon.com/aws-sdk-php/v2/guide/service-importexport.html User guide + * @link http://docs.aws.amazon.com/aws-sdk-php/v2/api/class-Aws.ImportExport.ImportExportClient.html API docs */ class ImportExportClient extends AbstractClient { @@ -46,7 +47,7 @@ class ImportExportClient extends AbstractClient * @param array|Collection $config Client configuration data * * @return self - * @see \Aws\Common\Client\DefaultClient for a list of available configuration options + * @link http://docs.aws.amazon.com/aws-sdk-php/v2/guide/configuration.html#client-configuration-options */ public static function factory($config = array()) { diff --git a/inc/aws-sdk/Aws/ImportExport/JobManifestListener.php b/inc/aws-sdk/Aws/ImportExport/JobManifestListener.php index d6afc41..66d8d4d 100755 --- a/inc/aws-sdk/Aws/ImportExport/JobManifestListener.php +++ b/inc/aws-sdk/Aws/ImportExport/JobManifestListener.php @@ -39,7 +39,7 @@ class JobManifestListener implements EventSubscriberInterface */ public function onCommandBeforePrepare(Event $event) { - /** @var $command \Guzzle\Service\Command\AbstractCommand */ + /** @var \Guzzle\Service\Command\AbstractCommand $command */ $command = $event['command']; if ($command->getName() === 'CreateJob') { $manifest = $command->get('Manifest'); diff --git a/inc/aws-sdk/Aws/ImportExport/Resources/importexport-2010-06-01.php b/inc/aws-sdk/Aws/ImportExport/Resources/importexport-2010-06-01.php index acd922e..4e822d2 100755 --- a/inc/aws-sdk/Aws/ImportExport/Resources/importexport-2010-06-01.php +++ b/inc/aws-sdk/Aws/ImportExport/Resources/importexport-2010-06-01.php @@ -88,6 +88,10 @@ return array ( 'type' => 'string', 'location' => 'aws.query', ), + 'APIVersion' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), ), 'errorResponses' => array( array( @@ -110,6 +114,10 @@ return array ( 'reason' => 'The AWS Access Key ID specified in the request did not match the manifest\'s accessKeyId value. The manifest and the request authentication must use the same AWS Access Key ID.', 'class' => 'InvalidAccessKeyIdException', ), + array( + 'reason' => 'The client tool version is invalid.', + 'class' => 'InvalidVersionException', + ), ), ), 'CreateJob' => array( @@ -133,10 +141,6 @@ return array ( 'required' => true, 'type' => 'string', 'location' => 'aws.query', - 'enum' => array( - 'Import', - 'Export', - ), ), 'Manifest' => array( 'required' => true, @@ -153,6 +157,10 @@ return array ( 'format' => 'boolean-string', 'location' => 'aws.query', ), + 'APIVersion' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), ), 'errorResponses' => array( array( @@ -163,10 +171,6 @@ return array ( 'reason' => 'One or more parameters had an invalid value.', 'class' => 'InvalidParameterException', ), - array( - 'reason' => 'One or more parameters had an invalid value.', - 'class' => 'InvalidParameterException', - ), array( 'reason' => 'The AWS Access Key ID specified in the request did not match the manifest\'s accessKeyId value. The manifest and the request authentication must use the same AWS Access Key ID.', 'class' => 'InvalidAccessKeyIdException', @@ -211,6 +215,121 @@ return array ( 'reason' => 'Your manifest is not well-formed.', 'class' => 'MalformedManifestException', ), + array( + 'reason' => 'Each account can create only a certain number of jobs per day. If you need to create more than this, please contact awsimportexport@amazon.com to explain your particular use case.', + 'class' => 'CreateJobQuotaExceededException', + ), + array( + 'reason' => 'The JOBID was missing, not found, or not associated with the AWS account.', + 'class' => 'InvalidJobIdException', + ), + array( + 'reason' => 'The client tool version is invalid.', + 'class' => 'InvalidVersionException', + ), + ), + ), + 'GetShippingLabel' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'GetShippingLabelOutput', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'GetShippingLabel', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2010-06-01', + ), + 'jobIds' => array( + 'required' => true, + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'jobIds.member', + 'items' => array( + 'name' => 'GenericString', + 'type' => 'string', + ), + ), + 'name' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'company' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'phoneNumber' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'country' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'stateOrProvince' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'city' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'postalCode' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'street1' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'street2' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'street3' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'APIVersion' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The JOBID was missing, not found, or not associated with the AWS account.', + 'class' => 'InvalidJobIdException', + ), + array( + 'reason' => 'Indicates that the specified job has expired out of the system.', + 'class' => 'ExpiredJobIdException', + ), + array( + 'reason' => 'The specified job ID has been canceled and is no longer valid.', + 'class' => 'CanceledJobIdException', + ), + array( + 'reason' => 'The AWS Access Key ID specified in the request did not match the manifest\'s accessKeyId value. The manifest and the request authentication must use the same AWS Access Key ID.', + 'class' => 'InvalidAccessKeyIdException', + ), + array( + 'reason' => 'The address specified in the manifest is invalid.', + 'class' => 'InvalidAddressException', + ), + array( + 'reason' => 'The client tool version is invalid.', + 'class' => 'InvalidVersionException', + ), + array( + 'reason' => 'One or more parameters had an invalid value.', + 'class' => 'InvalidParameterException', + ), ), ), 'GetStatus' => array( @@ -235,6 +354,10 @@ return array ( 'type' => 'string', 'location' => 'aws.query', ), + 'APIVersion' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), ), 'errorResponses' => array( array( @@ -253,6 +376,10 @@ return array ( 'reason' => 'The AWS Access Key ID specified in the request did not match the manifest\'s accessKeyId value. The manifest and the request authentication must use the same AWS Access Key ID.', 'class' => 'InvalidAccessKeyIdException', ), + array( + 'reason' => 'The client tool version is invalid.', + 'class' => 'InvalidVersionException', + ), ), ), 'ListJobs' => array( @@ -280,6 +407,10 @@ return array ( 'type' => 'string', 'location' => 'aws.query', ), + 'APIVersion' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), ), 'errorResponses' => array( array( @@ -290,6 +421,10 @@ return array ( 'reason' => 'The AWS Access Key ID specified in the request did not match the manifest\'s accessKeyId value. The manifest and the request authentication must use the same AWS Access Key ID.', 'class' => 'InvalidAccessKeyIdException', ), + array( + 'reason' => 'The client tool version is invalid.', + 'class' => 'InvalidVersionException', + ), ), ), 'UpdateJob' => array( @@ -323,10 +458,6 @@ return array ( 'required' => true, 'type' => 'string', 'location' => 'aws.query', - 'enum' => array( - 'Import', - 'Export', - ), ), 'ValidateOnly' => array( 'required' => true, @@ -334,6 +465,10 @@ return array ( 'format' => 'boolean-string', 'location' => 'aws.query', ), + 'APIVersion' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), ), 'errorResponses' => array( array( @@ -400,6 +535,14 @@ return array ( 'reason' => 'Your manifest is not well-formed.', 'class' => 'MalformedManifestException', ), + array( + 'reason' => 'AWS Import/Export cannot update the job', + 'class' => 'UnableToUpdateJobIdException', + ), + array( + 'reason' => 'The client tool version is invalid.', + 'class' => 'InvalidVersionException', + ), ), ), ), @@ -426,10 +569,6 @@ return array ( 'type' => 'string', 'location' => 'xml', ), - 'AwsShippingAddress' => array( - 'type' => 'string', - 'location' => 'xml', - ), 'Signature' => array( 'type' => 'string', 'location' => 'xml', @@ -442,6 +581,37 @@ return array ( 'type' => 'string', 'location' => 'xml', ), + 'ArtifactList' => array( + 'type' => 'array', + 'location' => 'xml', + 'items' => array( + 'name' => 'Artifact', + 'type' => 'object', + 'sentAs' => 'member', + 'properties' => array( + 'Description' => array( + 'type' => 'string', + ), + 'URL' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + 'GetShippingLabelOutput' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'ShippingLabelURL' => array( + 'type' => 'string', + 'location' => 'xml', + ), + 'Warning' => array( + 'type' => 'string', + 'location' => 'xml', + ), ), ), 'GetStatusOutput' => array( @@ -456,10 +626,6 @@ return array ( 'type' => 'string', 'location' => 'xml', ), - 'AwsShippingAddress' => array( - 'type' => 'string', - 'location' => 'xml', - ), 'LocationCode' => array( 'type' => 'string', 'location' => 'xml', @@ -512,6 +678,23 @@ return array ( 'type' => 'string', 'location' => 'xml', ), + 'ArtifactList' => array( + 'type' => 'array', + 'location' => 'xml', + 'items' => array( + 'name' => 'Artifact', + 'type' => 'object', + 'sentAs' => 'member', + 'properties' => array( + 'Description' => array( + 'type' => 'string', + ), + 'URL' => array( + 'type' => 'string', + ), + ), + ), + ), ), ), 'ListJobsOutput' => array( @@ -559,17 +742,33 @@ return array ( 'type' => 'string', 'location' => 'xml', ), + 'ArtifactList' => array( + 'type' => 'array', + 'location' => 'xml', + 'items' => array( + 'name' => 'Artifact', + 'type' => 'object', + 'sentAs' => 'member', + 'properties' => array( + 'Description' => array( + 'type' => 'string', + ), + 'URL' => array( + 'type' => 'string', + ), + ), + ), + ), ), ), ), 'iterators' => array( - 'operations' => array( - 'ListJobs' => array( - 'token_param' => 'Marker', - 'more_key' => 'IsTruncated', - 'limit_key' => 'MaxJobs', - 'result_key' => 'Jobs', - ), + 'ListJobs' => array( + 'input_token' => 'Marker', + 'output_token' => 'Jobs/#/JobId', + 'more_results' => 'IsTruncated', + 'limit_key' => 'MaxJobs', + 'result_key' => 'Jobs', ), ), ); diff --git a/inc/aws-sdk/Aws/Kinesis/Enum/ShardIteratorType.php b/inc/aws-sdk/Aws/Kinesis/Enum/ShardIteratorType.php new file mode 100644 index 0000000..58af9f5 --- /dev/null +++ b/inc/aws-sdk/Aws/Kinesis/Enum/ShardIteratorType.php @@ -0,0 +1,30 @@ +setConfig($config) + ->setConfigDefaults(array( + Options::VERSION => self::LATEST_API_VERSION, + Options::SERVICE_DESCRIPTION => __DIR__ . '/Resources/kinesis-%s.php' + )) + ->setExceptionParser(new JsonQueryExceptionParser) + ->build(); + } + + public function __call($method, $args) + { + // Overrides the parent behavior to make sure that the GetShardIterator operation works correctly + if ($method === 'getShardIterator') { + $params = isset($args[0]) ? $args[0] : array(); + return $this->getCommand($method, $params)->getResult(); + } else { + return parent::__call($method, $args); + } + } +} diff --git a/inc/aws-sdk/Aws/Kinesis/Resources/kinesis-2013-12-02.php b/inc/aws-sdk/Aws/Kinesis/Resources/kinesis-2013-12-02.php new file mode 100644 index 0000000..a1e70c1 --- /dev/null +++ b/inc/aws-sdk/Aws/Kinesis/Resources/kinesis-2013-12-02.php @@ -0,0 +1,1015 @@ + '2013-12-02', + 'endpointPrefix' => 'kinesis', + 'serviceFullName' => 'Amazon Kinesis', + 'serviceAbbreviation' => 'Kinesis', + 'serviceType' => 'json', + 'jsonVersion' => '1.1', + 'targetPrefix' => 'Kinesis_20131202.', + 'signatureVersion' => 'v4', + 'namespace' => 'Kinesis', + 'regions' => array( + 'us-east-1' => array( + 'http' => false, + 'https' => true, + 'hostname' => 'kinesis.us-east-1.amazonaws.com', + ), + 'us-west-2' => array( + 'http' => false, + 'https' => true, + 'hostname' => 'kinesis.us-west-2.amazonaws.com', + ), + 'eu-west-1' => array( + 'http' => false, + 'https' => true, + 'hostname' => 'kinesis.eu-west-1.amazonaws.com', + ), + 'ap-northeast-1' => array( + 'http' => false, + 'https' => true, + 'hostname' => 'kinesis.ap-northeast-1.amazonaws.com', + ), + 'ap-southeast-1' => array( + 'http' => false, + 'https' => true, + 'hostname' => 'kinesis.ap-southeast-1.amazonaws.com', + ), + 'ap-southeast-2' => array( + 'http' => false, + 'https' => true, + 'hostname' => 'kinesis.ap-southeast-2.amazonaws.com', + ), + ), + 'operations' => array( + 'AddTagsToStream' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'EmptyOutput', + '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.AddTagsToStream', + ), + 'StreamName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 128, + ), + 'Tags' => array( + 'required' => true, + 'type' => 'object', + 'location' => 'json', + 'additionalProperties' => array( + 'type' => 'string', + 'maxLength' => 256, + 'data' => array( + 'shape_name' => 'TagKey', + ), + ), + ), + ), + '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' => 'The resource is not available for this operation. For example, you attempted to split a shard but the stream is not in the ACTIVE state.', + 'class' => 'ResourceInUseException', + ), + 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 requested resource exceeds the maximum number allowed, or the number of concurrent stream requests exceeds the maximum number allowed (5).', + 'class' => 'LimitExceededException', + ), + ), + ), + 'CreateStream' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'EmptyOutput', + '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.CreateStream', + ), + 'StreamName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 128, + ), + 'ShardCount' => array( + 'required' => true, + 'type' => 'numeric', + 'location' => 'json', + 'minimum' => 1, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The resource is not available for this operation. For example, you attempted to split a shard but the stream is not in the ACTIVE state.', + 'class' => 'ResourceInUseException', + ), + array( + 'reason' => 'The requested resource exceeds the maximum number allowed, or the number of concurrent stream requests exceeds the maximum number allowed (5).', + 'class' => 'LimitExceededException', + ), + 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', + ), + ), + ), + 'DeleteStream' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'EmptyOutput', + '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.DeleteStream', + ), + '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' => 'The requested resource exceeds the maximum number allowed, or the number of concurrent stream requests exceeds the maximum number allowed (5).', + 'class' => 'LimitExceededException', + ), + ), + ), + 'DescribeStream' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'DescribeStreamOutput', + '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.DescribeStream', + ), + 'StreamName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 128, + ), + 'Limit' => array( + 'type' => 'numeric', + 'location' => 'json', + 'minimum' => 1, + 'maximum' => 10000, + ), + 'ExclusiveStartShardId' => array( + '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' => 'The requested resource exceeds the maximum number allowed, or the number of concurrent stream requests exceeds the maximum number allowed (5).', + 'class' => 'LimitExceededException', + ), + ), + ), + 'GetRecords' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'GetRecordsOutput', + '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.GetRecords', + ), + 'ShardIterator' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 512, + ), + 'Limit' => array( + 'type' => 'numeric', + 'location' => 'json', + 'minimum' => 1, + 'maximum' => 10000, + ), + ), + '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', + ), + array( + 'reason' => 'The provided iterator exceeds the maximum age allowed.', + 'class' => 'ExpiredIteratorException', + ), + ), + ), + 'GetShardIterator' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'GetShardIteratorOutput', + '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.GetShardIterator', + ), + 'StreamName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 128, + ), + 'ShardId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 128, + ), + 'ShardIteratorType' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + ), + 'StartingSequenceNumber' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + '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', + ), + ), + ), + 'ListStreams' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'ListStreamsOutput', + '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.ListStreams', + ), + 'Limit' => array( + 'type' => 'numeric', + 'location' => 'json', + 'minimum' => 1, + 'maximum' => 10000, + ), + 'ExclusiveStartStreamName' => array( + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 128, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The requested resource exceeds the maximum number allowed, or the number of concurrent stream requests exceeds the maximum number allowed (5).', + 'class' => 'LimitExceededException', + ), + ), + ), + 'ListTagsForStream' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'ListTagsForStreamOutput', + '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.ListTagsForStream', + ), + 'StreamName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 128, + ), + 'ExclusiveStartTagKey' => array( + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 128, + ), + 'Limit' => array( + 'type' => 'numeric', + 'location' => 'json', + 'minimum' => 1, + 'maximum' => 10, + ), + ), + '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 requested resource exceeds the maximum number allowed, or the number of concurrent stream requests exceeds the maximum number allowed (5).', + 'class' => 'LimitExceededException', + ), + ), + ), + 'MergeShards' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'EmptyOutput', + '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.MergeShards', + ), + 'StreamName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 128, + ), + 'ShardToMerge' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 128, + ), + 'AdjacentShardToMerge' => 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' => 'The resource is not available for this operation. For example, you attempted to split a shard but the stream is not in the ACTIVE state.', + 'class' => 'ResourceInUseException', + ), + 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 requested resource exceeds the maximum number allowed, or the number of concurrent stream requests exceeds the maximum number allowed (5).', + 'class' => 'LimitExceededException', + ), + ), + ), + 'PutRecord' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'PutRecordOutput', + '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.PutRecord', + ), + 'StreamName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 128, + ), + 'Data' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'filters' => array( + 'base64_encode', + ), + ), + 'PartitionKey' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 256, + ), + 'ExplicitHashKey' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'SequenceNumberForOrdering' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + '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', + ), + ), + ), + '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' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'EmptyOutput', + '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.RemoveTagsFromStream', + ), + 'StreamName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 128, + ), + 'TagKeys' => array( + 'required' => true, + 'type' => 'array', + 'location' => 'json', + 'minItems' => 1, + 'maxItems' => 10, + 'items' => array( + 'name' => 'TagKey', + 'type' => 'string', + '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' => 'The resource is not available for this operation. For example, you attempted to split a shard but the stream is not in the ACTIVE state.', + 'class' => 'ResourceInUseException', + ), + 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 requested resource exceeds the maximum number allowed, or the number of concurrent stream requests exceeds the maximum number allowed (5).', + 'class' => 'LimitExceededException', + ), + ), + ), + 'SplitShard' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'EmptyOutput', + '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.SplitShard', + ), + 'StreamName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 128, + ), + 'ShardToSplit' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 128, + ), + 'NewStartingHashKey' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + ), + ), + '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' => 'The resource is not available for this operation. For example, you attempted to split a shard but the stream is not in the ACTIVE state.', + 'class' => 'ResourceInUseException', + ), + 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 requested resource exceeds the maximum number allowed, or the number of concurrent stream requests exceeds the maximum number allowed (5).', + 'class' => 'LimitExceededException', + ), + ), + ), + ), + 'models' => array( + 'EmptyOutput' => array( + 'type' => 'object', + 'additionalProperties' => true, + ), + 'DescribeStreamOutput' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'StreamDescription' => array( + 'type' => 'object', + 'location' => 'json', + 'properties' => array( + 'StreamName' => array( + 'type' => 'string', + ), + 'StreamARN' => array( + 'type' => 'string', + ), + 'StreamStatus' => array( + 'type' => 'string', + ), + 'Shards' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Shard', + 'type' => 'object', + 'properties' => array( + 'ShardId' => array( + 'type' => 'string', + ), + 'ParentShardId' => array( + 'type' => 'string', + ), + 'AdjacentParentShardId' => array( + 'type' => 'string', + ), + 'HashKeyRange' => array( + 'type' => 'object', + 'properties' => array( + 'StartingHashKey' => array( + 'type' => 'string', + ), + 'EndingHashKey' => array( + 'type' => 'string', + ), + ), + ), + 'SequenceNumberRange' => array( + 'type' => 'object', + 'properties' => array( + 'StartingSequenceNumber' => array( + 'type' => 'string', + ), + 'EndingSequenceNumber' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + 'HasMoreShards' => array( + 'type' => 'boolean', + ), + ), + ), + ), + ), + 'GetRecordsOutput' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'Records' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'Record', + 'type' => 'object', + 'properties' => array( + 'SequenceNumber' => array( + 'type' => 'string', + ), + 'Data' => array( + 'type' => 'string', + 'filters' => array( + 'base64_decode', + ), + ), + 'PartitionKey' => array( + 'type' => 'string', + ), + ), + ), + ), + 'NextShardIterator' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + ), + 'GetShardIteratorOutput' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'ShardIterator' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + ), + 'ListStreamsOutput' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'StreamNames' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'StreamName', + 'type' => 'string', + ), + ), + 'HasMoreStreams' => array( + 'type' => 'boolean', + 'location' => 'json', + ), + ), + ), + 'ListTagsForStreamOutput' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'Tags' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'Tag', + 'type' => 'object', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + ), + 'Value' => array( + 'type' => 'string', + ), + ), + ), + ), + 'HasMoreTags' => array( + 'type' => 'boolean', + 'location' => 'json', + ), + ), + ), + 'PutRecordOutput' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'ShardId' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'SequenceNumber' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + ), + '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( + 'input_token' => 'ExclusiveStartShardId', + 'limit_key' => 'Limit', + 'more_results' => 'StreamDescription/HasMoreShards', + 'output_token' => 'StreamDescription/Shards/#/ShardId', + 'result_key' => 'StreamDescription/Shards', + ), + 'ListStreams' => array( + 'input_token' => 'ExclusiveStartStreamName', + 'limit_key' => 'Limit', + 'more_results' => 'HasMoreStreams', + 'output_token' => 'StreamNames/#', + 'result_key' => 'StreamNames', + ), + ), +); diff --git a/inc/aws-sdk/Aws/Kms/Exception/KmsException.php b/inc/aws-sdk/Aws/Kms/Exception/KmsException.php new file mode 100644 index 0000000..4de7bd1 --- /dev/null +++ b/inc/aws-sdk/Aws/Kms/Exception/KmsException.php @@ -0,0 +1,10 @@ +setConfig($config) + ->setConfigDefaults(array( + Options::VERSION => self::LATEST_API_VERSION, + Options::SERVICE_DESCRIPTION => __DIR__ . '/Resources/kms-%s.php' + )) + ->setExceptionParser(new JsonQueryExceptionParser) + ->build(); + } +} diff --git a/inc/aws-sdk/Aws/Kms/Resources/kms-2014-11-01.php b/inc/aws-sdk/Aws/Kms/Resources/kms-2014-11-01.php new file mode 100644 index 0000000..967c2c9 --- /dev/null +++ b/inc/aws-sdk/Aws/Kms/Resources/kms-2014-11-01.php @@ -0,0 +1,1951 @@ + '2014-11-01', + 'endpointPrefix' => 'kms', + 'serviceFullName' => 'AWS Key Management Service', + 'serviceAbbreviation' => 'KMS', + 'serviceType' => 'json', + 'jsonVersion' => '1.1', + 'targetPrefix' => 'TrentService.', + 'signatureVersion' => 'v4', + 'namespace' => 'Kms', + 'operations' => array( + 'CreateAlias' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'EmptyOutput', + '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' => 'TrentService.CreateAlias', + ), + 'AliasName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 256, + ), + 'TargetKeyId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 256, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The system timed out while trying to fulfill the request.', + 'class' => 'DependencyTimeoutException', + ), + array( + 'reason' => 'The request was rejected because it attempted to create a resource that already exists.', + 'class' => 'AlreadyExistsException', + ), + array( + 'reason' => 'The request was rejected because the specified entity or resource could not be found.', + 'class' => 'NotFoundException', + ), + array( + 'reason' => 'The request was rejected because the specified alias name is not valid.', + 'class' => 'InvalidAliasNameException', + ), + array( + 'reason' => 'The request was rejected because an internal exception occurred. This error can be retried.', + 'class' => 'KMSInternalException', + ), + array( + 'reason' => 'The request was rejected because a quota was exceeded.', + 'class' => 'LimitExceededException', + ), + ), + ), + 'CreateGrant' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'CreateGrantResponse', + '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' => 'TrentService.CreateGrant', + ), + 'KeyId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 256, + ), + 'GranteePrincipal' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 256, + ), + 'RetiringPrincipal' => array( + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 256, + ), + 'Operations' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'GrantOperation', + 'type' => 'string', + ), + ), + 'Constraints' => array( + 'type' => 'object', + 'location' => 'json', + 'properties' => array( + 'EncryptionContextSubset' => array( + 'type' => 'object', + 'additionalProperties' => array( + 'type' => 'string', + 'data' => array( + 'shape_name' => 'EncryptionContextKey', + ), + ), + ), + 'EncryptionContextEquals' => array( + 'type' => 'object', + 'additionalProperties' => array( + 'type' => 'string', + 'data' => array( + 'shape_name' => 'EncryptionContextKey', + ), + ), + ), + ), + ), + 'GrantTokens' => array( + 'type' => 'array', + 'location' => 'json', + 'maxItems' => 10, + 'items' => array( + 'name' => 'GrantTokenType', + 'type' => 'string', + 'minLength' => 1, + 'maxLength' => 8192, + ), + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The request was rejected because the specified entity or resource could not be found.', + 'class' => 'NotFoundException', + ), + array( + 'reason' => 'A request was rejected because the specified key was marked as disabled.', + 'class' => 'DisabledException', + ), + array( + 'reason' => 'The system timed out while trying to fulfill the request.', + 'class' => 'DependencyTimeoutException', + ), + array( + 'reason' => 'The request was rejected because a specified ARN was not valid.', + 'class' => 'InvalidArnException', + ), + array( + 'reason' => 'The request was rejected because an internal exception occurred. This error can be retried.', + 'class' => 'KMSInternalException', + ), + array( + 'reason' => 'A grant token provided as part of the request is invalid.', + 'class' => 'InvalidGrantTokenException', + ), + array( + 'reason' => 'The request was rejected because a quota was exceeded.', + 'class' => 'LimitExceededException', + ), + ), + ), + 'CreateKey' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'CreateKeyResponse', + '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' => 'TrentService.CreateKey', + ), + 'Policy' => array( + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 131072, + ), + 'Description' => array( + 'type' => 'string', + 'location' => 'json', + 'maxLength' => 8192, + ), + 'KeyUsage' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The request was rejected because the specified policy is not syntactically or semantically correct.', + 'class' => 'MalformedPolicyDocumentException', + ), + array( + 'reason' => 'The system timed out while trying to fulfill the request.', + 'class' => 'DependencyTimeoutException', + ), + array( + 'reason' => 'The request was rejected because a specified ARN was not valid.', + 'class' => 'InvalidArnException', + ), + array( + 'reason' => 'The request was rejected because a specified parameter is not supported.', + 'class' => 'UnsupportedOperationException', + ), + array( + 'reason' => 'The request was rejected because an internal exception occurred. This error can be retried.', + 'class' => 'KMSInternalException', + ), + array( + 'reason' => 'The request was rejected because a quota was exceeded.', + 'class' => 'LimitExceededException', + ), + ), + ), + 'Decrypt' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'DecryptResponse', + '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' => 'TrentService.Decrypt', + ), + 'CiphertextBlob' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'filters' => array( + 'base64_encode', + ), + ), + 'EncryptionContext' => array( + 'type' => 'object', + 'location' => 'json', + 'additionalProperties' => array( + 'type' => 'string', + 'data' => array( + 'shape_name' => 'EncryptionContextKey', + ), + ), + ), + 'GrantTokens' => array( + 'type' => 'array', + 'location' => 'json', + 'maxItems' => 10, + 'items' => array( + 'name' => 'GrantTokenType', + 'type' => 'string', + 'minLength' => 1, + 'maxLength' => 8192, + ), + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The request was rejected because the specified entity or resource could not be found.', + 'class' => 'NotFoundException', + ), + array( + 'reason' => 'A request was rejected because the specified key was marked as disabled.', + 'class' => 'DisabledException', + ), + array( + 'reason' => 'The request was rejected because the specified ciphertext has been corrupted or is otherwise invalid.', + 'class' => 'InvalidCiphertextException', + ), + array( + 'reason' => 'The request was rejected because the key was disabled, not found, or otherwise not available.', + 'class' => 'KeyUnavailableException', + ), + array( + 'reason' => 'The system timed out while trying to fulfill the request.', + 'class' => 'DependencyTimeoutException', + ), + array( + 'reason' => 'A grant token provided as part of the request is invalid.', + 'class' => 'InvalidGrantTokenException', + ), + array( + 'reason' => 'The request was rejected because an internal exception occurred. This error can be retried.', + 'class' => 'KMSInternalException', + ), + ), + ), + 'DeleteAlias' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'EmptyOutput', + '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' => 'TrentService.DeleteAlias', + ), + 'AliasName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 256, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The system timed out while trying to fulfill the request.', + 'class' => 'DependencyTimeoutException', + ), + array( + 'reason' => 'The request was rejected because the specified entity or resource could not be found.', + 'class' => 'NotFoundException', + ), + array( + 'reason' => 'The request was rejected because an internal exception occurred. This error can be retried.', + 'class' => 'KMSInternalException', + ), + ), + ), + 'DescribeKey' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'DescribeKeyResponse', + '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' => 'TrentService.DescribeKey', + ), + 'KeyId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 256, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The request was rejected because the specified entity or resource could not be found.', + 'class' => 'NotFoundException', + ), + array( + 'reason' => 'The request was rejected because a specified ARN was not valid.', + 'class' => 'InvalidArnException', + ), + array( + 'reason' => 'The system timed out while trying to fulfill the request.', + 'class' => 'DependencyTimeoutException', + ), + array( + 'reason' => 'The request was rejected because an internal exception occurred. This error can be retried.', + 'class' => 'KMSInternalException', + ), + ), + ), + 'DisableKey' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'EmptyOutput', + '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' => 'TrentService.DisableKey', + ), + 'KeyId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 256, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The request was rejected because the specified entity or resource could not be found.', + 'class' => 'NotFoundException', + ), + array( + 'reason' => 'The request was rejected because a specified ARN was not valid.', + 'class' => 'InvalidArnException', + ), + array( + 'reason' => 'The system timed out while trying to fulfill the request.', + 'class' => 'DependencyTimeoutException', + ), + array( + 'reason' => 'The request was rejected because an internal exception occurred. This error can be retried.', + 'class' => 'KMSInternalException', + ), + ), + ), + 'DisableKeyRotation' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'EmptyOutput', + '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' => 'TrentService.DisableKeyRotation', + ), + 'KeyId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 256, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The request was rejected because the specified entity or resource could not be found.', + 'class' => 'NotFoundException', + ), + array( + 'reason' => 'The request was rejected because a specified ARN was not valid.', + 'class' => 'InvalidArnException', + ), + array( + 'reason' => 'The system timed out while trying to fulfill the request.', + 'class' => 'DependencyTimeoutException', + ), + array( + 'reason' => 'The request was rejected because an internal exception occurred. This error can be retried.', + 'class' => 'KMSInternalException', + ), + ), + ), + 'EnableKey' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'EmptyOutput', + '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' => 'TrentService.EnableKey', + ), + 'KeyId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 256, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The request was rejected because the specified entity or resource could not be found.', + 'class' => 'NotFoundException', + ), + array( + 'reason' => 'The request was rejected because a specified ARN was not valid.', + 'class' => 'InvalidArnException', + ), + array( + 'reason' => 'The system timed out while trying to fulfill the request.', + 'class' => 'DependencyTimeoutException', + ), + array( + 'reason' => 'The request was rejected because an internal exception occurred. This error can be retried.', + 'class' => 'KMSInternalException', + ), + array( + 'reason' => 'The request was rejected because a quota was exceeded.', + 'class' => 'LimitExceededException', + ), + ), + ), + 'EnableKeyRotation' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'EmptyOutput', + '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' => 'TrentService.EnableKeyRotation', + ), + 'KeyId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 256, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The request was rejected because the specified entity or resource could not be found.', + 'class' => 'NotFoundException', + ), + array( + 'reason' => 'The request was rejected because a specified ARN was not valid.', + 'class' => 'InvalidArnException', + ), + array( + 'reason' => 'The system timed out while trying to fulfill the request.', + 'class' => 'DependencyTimeoutException', + ), + array( + 'reason' => 'The request was rejected because an internal exception occurred. This error can be retried.', + 'class' => 'KMSInternalException', + ), + ), + ), + 'Encrypt' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'EncryptResponse', + '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' => 'TrentService.Encrypt', + ), + 'KeyId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 256, + ), + 'Plaintext' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'filters' => array( + 'base64_encode', + ), + ), + 'EncryptionContext' => array( + 'type' => 'object', + 'location' => 'json', + 'additionalProperties' => array( + 'type' => 'string', + 'data' => array( + 'shape_name' => 'EncryptionContextKey', + ), + ), + ), + 'GrantTokens' => array( + 'type' => 'array', + 'location' => 'json', + 'maxItems' => 10, + 'items' => array( + 'name' => 'GrantTokenType', + 'type' => 'string', + 'minLength' => 1, + 'maxLength' => 8192, + ), + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The request was rejected because the specified entity or resource could not be found.', + 'class' => 'NotFoundException', + ), + array( + 'reason' => 'A request was rejected because the specified key was marked as disabled.', + 'class' => 'DisabledException', + ), + array( + 'reason' => 'The request was rejected because the key was disabled, not found, or otherwise not available.', + 'class' => 'KeyUnavailableException', + ), + array( + 'reason' => 'The system timed out while trying to fulfill the request.', + 'class' => 'DependencyTimeoutException', + ), + array( + 'reason' => 'The request was rejected because the specified KeySpec parameter is not valid. The currently supported value is ENCRYPT/DECRYPT.', + 'class' => 'InvalidKeyUsageException', + ), + array( + 'reason' => 'A grant token provided as part of the request is invalid.', + 'class' => 'InvalidGrantTokenException', + ), + array( + 'reason' => 'The request was rejected because an internal exception occurred. This error can be retried.', + 'class' => 'KMSInternalException', + ), + ), + ), + 'GenerateDataKey' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'GenerateDataKeyResponse', + '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' => 'TrentService.GenerateDataKey', + ), + 'KeyId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 256, + ), + 'EncryptionContext' => array( + 'type' => 'object', + 'location' => 'json', + 'additionalProperties' => array( + 'type' => 'string', + 'data' => array( + 'shape_name' => 'EncryptionContextKey', + ), + ), + ), + 'NumberOfBytes' => array( + 'type' => 'numeric', + 'location' => 'json', + 'minimum' => 1, + 'maximum' => 1024, + ), + 'KeySpec' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'GrantTokens' => array( + 'type' => 'array', + 'location' => 'json', + 'maxItems' => 10, + 'items' => array( + 'name' => 'GrantTokenType', + 'type' => 'string', + 'minLength' => 1, + 'maxLength' => 8192, + ), + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The request was rejected because the specified entity or resource could not be found.', + 'class' => 'NotFoundException', + ), + array( + 'reason' => 'A request was rejected because the specified key was marked as disabled.', + 'class' => 'DisabledException', + ), + array( + 'reason' => 'The request was rejected because the key was disabled, not found, or otherwise not available.', + 'class' => 'KeyUnavailableException', + ), + array( + 'reason' => 'The system timed out while trying to fulfill the request.', + 'class' => 'DependencyTimeoutException', + ), + array( + 'reason' => 'The request was rejected because the specified KeySpec parameter is not valid. The currently supported value is ENCRYPT/DECRYPT.', + 'class' => 'InvalidKeyUsageException', + ), + array( + 'reason' => 'A grant token provided as part of the request is invalid.', + 'class' => 'InvalidGrantTokenException', + ), + array( + 'reason' => 'The request was rejected because an internal exception occurred. This error can be retried.', + 'class' => 'KMSInternalException', + ), + ), + ), + 'GenerateDataKeyWithoutPlaintext' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'GenerateDataKeyWithoutPlaintextResponse', + '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' => 'TrentService.GenerateDataKeyWithoutPlaintext', + ), + 'KeyId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 256, + ), + 'EncryptionContext' => array( + 'type' => 'object', + 'location' => 'json', + 'additionalProperties' => array( + 'type' => 'string', + 'data' => array( + 'shape_name' => 'EncryptionContextKey', + ), + ), + ), + 'KeySpec' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'NumberOfBytes' => array( + 'type' => 'numeric', + 'location' => 'json', + 'minimum' => 1, + 'maximum' => 1024, + ), + 'GrantTokens' => array( + 'type' => 'array', + 'location' => 'json', + 'maxItems' => 10, + 'items' => array( + 'name' => 'GrantTokenType', + 'type' => 'string', + 'minLength' => 1, + 'maxLength' => 8192, + ), + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The request was rejected because the specified entity or resource could not be found.', + 'class' => 'NotFoundException', + ), + array( + 'reason' => 'A request was rejected because the specified key was marked as disabled.', + 'class' => 'DisabledException', + ), + array( + 'reason' => 'The request was rejected because the key was disabled, not found, or otherwise not available.', + 'class' => 'KeyUnavailableException', + ), + array( + 'reason' => 'The system timed out while trying to fulfill the request.', + 'class' => 'DependencyTimeoutException', + ), + array( + 'reason' => 'The request was rejected because the specified KeySpec parameter is not valid. The currently supported value is ENCRYPT/DECRYPT.', + 'class' => 'InvalidKeyUsageException', + ), + array( + 'reason' => 'A grant token provided as part of the request is invalid.', + 'class' => 'InvalidGrantTokenException', + ), + array( + 'reason' => 'The request was rejected because an internal exception occurred. This error can be retried.', + 'class' => 'KMSInternalException', + ), + ), + ), + 'GenerateRandom' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'GenerateRandomResponse', + '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' => 'TrentService.GenerateRandom', + ), + 'NumberOfBytes' => array( + 'type' => 'numeric', + 'location' => 'json', + 'minimum' => 1, + 'maximum' => 1024, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The system timed out while trying to fulfill the request.', + 'class' => 'DependencyTimeoutException', + ), + array( + 'reason' => 'The request was rejected because an internal exception occurred. This error can be retried.', + 'class' => 'KMSInternalException', + ), + ), + ), + 'GetKeyPolicy' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'GetKeyPolicyResponse', + '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' => 'TrentService.GetKeyPolicy', + ), + 'KeyId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 256, + ), + 'PolicyName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 128, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The request was rejected because the specified entity or resource could not be found.', + 'class' => 'NotFoundException', + ), + array( + 'reason' => 'The request was rejected because a specified ARN was not valid.', + 'class' => 'InvalidArnException', + ), + array( + 'reason' => 'The system timed out while trying to fulfill the request.', + 'class' => 'DependencyTimeoutException', + ), + array( + 'reason' => 'The request was rejected because an internal exception occurred. This error can be retried.', + 'class' => 'KMSInternalException', + ), + ), + ), + 'GetKeyRotationStatus' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'GetKeyRotationStatusResponse', + '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' => 'TrentService.GetKeyRotationStatus', + ), + 'KeyId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 256, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The request was rejected because the specified entity or resource could not be found.', + 'class' => 'NotFoundException', + ), + array( + 'reason' => 'The request was rejected because a specified ARN was not valid.', + 'class' => 'InvalidArnException', + ), + array( + 'reason' => 'The system timed out while trying to fulfill the request.', + 'class' => 'DependencyTimeoutException', + ), + array( + 'reason' => 'The request was rejected because an internal exception occurred. This error can be retried.', + 'class' => 'KMSInternalException', + ), + ), + ), + 'ListAliases' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'ListAliasesResponse', + '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' => 'TrentService.ListAliases', + ), + 'Limit' => array( + 'type' => 'numeric', + 'location' => 'json', + 'minimum' => 1, + 'maximum' => 1000, + ), + 'Marker' => array( + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 320, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The system timed out while trying to fulfill the request.', + 'class' => 'DependencyTimeoutException', + ), + array( + 'reason' => 'The request was rejected because an internal exception occurred. This error can be retried.', + 'class' => 'KMSInternalException', + ), + ), + ), + 'ListGrants' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'ListGrantsResponse', + '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' => 'TrentService.ListGrants', + ), + 'KeyId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 256, + ), + 'Limit' => array( + 'type' => 'numeric', + 'location' => 'json', + 'minimum' => 1, + 'maximum' => 1000, + ), + 'Marker' => array( + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 320, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The system timed out while trying to fulfill the request.', + 'class' => 'DependencyTimeoutException', + ), + array( + 'reason' => 'The request was rejected because the marker that specifies where pagination should next begin is not valid.', + 'class' => 'InvalidMarkerException', + ), + array( + 'reason' => 'The request was rejected because an internal exception occurred. This error can be retried.', + 'class' => 'KMSInternalException', + ), + ), + ), + 'ListKeyPolicies' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'ListKeyPoliciesResponse', + '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' => 'TrentService.ListKeyPolicies', + ), + 'KeyId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 256, + ), + 'Limit' => array( + 'type' => 'numeric', + 'location' => 'json', + 'minimum' => 1, + 'maximum' => 1000, + ), + 'Marker' => array( + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 320, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The request was rejected because the specified entity or resource could not be found.', + 'class' => 'NotFoundException', + ), + array( + 'reason' => 'The request was rejected because a specified ARN was not valid.', + 'class' => 'InvalidArnException', + ), + array( + 'reason' => 'The system timed out while trying to fulfill the request.', + 'class' => 'DependencyTimeoutException', + ), + array( + 'reason' => 'The request was rejected because an internal exception occurred. This error can be retried.', + 'class' => 'KMSInternalException', + ), + ), + ), + 'ListKeys' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'ListKeysResponse', + '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' => 'TrentService.ListKeys', + ), + 'Limit' => array( + 'type' => 'numeric', + 'location' => 'json', + 'minimum' => 1, + 'maximum' => 1000, + ), + 'Marker' => array( + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 320, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The system timed out while trying to fulfill the request.', + 'class' => 'DependencyTimeoutException', + ), + array( + 'reason' => 'The request was rejected because an internal exception occurred. This error can be retried.', + 'class' => 'KMSInternalException', + ), + ), + ), + 'PutKeyPolicy' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'EmptyOutput', + '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' => 'TrentService.PutKeyPolicy', + ), + 'KeyId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 256, + ), + 'PolicyName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 128, + ), + 'Policy' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 131072, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The request was rejected because the specified entity or resource could not be found.', + 'class' => 'NotFoundException', + ), + array( + 'reason' => 'The request was rejected because a specified ARN was not valid.', + 'class' => 'InvalidArnException', + ), + array( + 'reason' => 'The request was rejected because the specified policy is not syntactically or semantically correct.', + 'class' => 'MalformedPolicyDocumentException', + ), + array( + 'reason' => 'The system timed out while trying to fulfill the request.', + 'class' => 'DependencyTimeoutException', + ), + array( + 'reason' => 'The request was rejected because a specified ARN was not valid.', + 'class' => 'InvalidArnException', + ), + array( + 'reason' => 'The request was rejected because a specified parameter is not supported.', + 'class' => 'UnsupportedOperationException', + ), + array( + 'reason' => 'The request was rejected because an internal exception occurred. This error can be retried.', + 'class' => 'KMSInternalException', + ), + array( + 'reason' => 'The request was rejected because a quota was exceeded.', + 'class' => 'LimitExceededException', + ), + ), + ), + 'ReEncrypt' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'ReEncryptResponse', + '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' => 'TrentService.ReEncrypt', + ), + 'CiphertextBlob' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'filters' => array( + 'base64_encode', + ), + ), + 'SourceEncryptionContext' => array( + 'type' => 'object', + 'location' => 'json', + 'additionalProperties' => array( + 'type' => 'string', + 'data' => array( + 'shape_name' => 'EncryptionContextKey', + ), + ), + ), + 'DestinationKeyId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 256, + ), + 'DestinationEncryptionContext' => array( + 'type' => 'object', + 'location' => 'json', + 'additionalProperties' => array( + 'type' => 'string', + 'data' => array( + 'shape_name' => 'EncryptionContextKey', + ), + ), + ), + 'GrantTokens' => array( + 'type' => 'array', + 'location' => 'json', + 'maxItems' => 10, + 'items' => array( + 'name' => 'GrantTokenType', + 'type' => 'string', + 'minLength' => 1, + 'maxLength' => 8192, + ), + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The request was rejected because the specified entity or resource could not be found.', + 'class' => 'NotFoundException', + ), + array( + 'reason' => 'A request was rejected because the specified key was marked as disabled.', + 'class' => 'DisabledException', + ), + array( + 'reason' => 'The request was rejected because the specified ciphertext has been corrupted or is otherwise invalid.', + 'class' => 'InvalidCiphertextException', + ), + array( + 'reason' => 'The request was rejected because the key was disabled, not found, or otherwise not available.', + 'class' => 'KeyUnavailableException', + ), + array( + 'reason' => 'The system timed out while trying to fulfill the request.', + 'class' => 'DependencyTimeoutException', + ), + array( + 'reason' => 'The request was rejected because the specified KeySpec parameter is not valid. The currently supported value is ENCRYPT/DECRYPT.', + 'class' => 'InvalidKeyUsageException', + ), + array( + 'reason' => 'A grant token provided as part of the request is invalid.', + 'class' => 'InvalidGrantTokenException', + ), + array( + 'reason' => 'The request was rejected because an internal exception occurred. This error can be retried.', + 'class' => 'KMSInternalException', + ), + ), + ), + 'RetireGrant' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'EmptyOutput', + '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' => 'TrentService.RetireGrant', + ), + 'GrantToken' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 8192, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'A grant token provided as part of the request is invalid.', + 'class' => 'InvalidGrantTokenException', + ), + array( + 'reason' => 'The system timed out while trying to fulfill the request.', + 'class' => 'DependencyTimeoutException', + ), + array( + 'reason' => 'The request was rejected because an internal exception occurred. This error can be retried.', + 'class' => 'KMSInternalException', + ), + ), + ), + 'RevokeGrant' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'EmptyOutput', + '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' => 'TrentService.RevokeGrant', + ), + 'KeyId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 256, + ), + 'GrantId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 128, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The request was rejected because the specified entity or resource could not be found.', + 'class' => 'NotFoundException', + ), + array( + 'reason' => 'The system timed out while trying to fulfill the request.', + 'class' => 'DependencyTimeoutException', + ), + array( + 'reason' => 'The request was rejected because an internal exception occurred. This error can be retried.', + 'class' => 'KMSInternalException', + ), + ), + ), + 'UpdateKeyDescription' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'EmptyOutput', + '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' => 'TrentService.UpdateKeyDescription', + ), + 'KeyId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 256, + ), + 'Description' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'maxLength' => 8192, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The request was rejected because the specified entity or resource could not be found.', + 'class' => 'NotFoundException', + ), + array( + 'reason' => 'The request was rejected because a specified ARN was not valid.', + 'class' => 'InvalidArnException', + ), + array( + 'reason' => 'The system timed out while trying to fulfill the request.', + 'class' => 'DependencyTimeoutException', + ), + array( + 'reason' => 'The request was rejected because an internal exception occurred. This error can be retried.', + 'class' => 'KMSInternalException', + ), + ), + ), + ), + 'models' => array( + 'EmptyOutput' => array( + 'type' => 'object', + 'additionalProperties' => true, + ), + 'CreateGrantResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'GrantToken' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'GrantId' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + ), + 'CreateKeyResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'KeyMetadata' => array( + 'type' => 'object', + 'location' => 'json', + 'properties' => array( + 'AWSAccountId' => array( + 'type' => 'string', + ), + 'KeyId' => array( + 'type' => 'string', + ), + 'Arn' => array( + 'type' => 'string', + ), + 'CreationDate' => array( + 'type' => 'string', + ), + 'Enabled' => array( + 'type' => 'boolean', + ), + 'Description' => array( + 'type' => 'string', + ), + 'KeyUsage' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + 'DecryptResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'KeyId' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'Plaintext' => array( + 'type' => 'string', + 'location' => 'json', + 'filters' => array( + 'base64_decode', + ), + ), + ), + ), + 'DescribeKeyResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'KeyMetadata' => array( + 'type' => 'object', + 'location' => 'json', + 'properties' => array( + 'AWSAccountId' => array( + 'type' => 'string', + ), + 'KeyId' => array( + 'type' => 'string', + ), + 'Arn' => array( + 'type' => 'string', + ), + 'CreationDate' => array( + 'type' => 'string', + ), + 'Enabled' => array( + 'type' => 'boolean', + ), + 'Description' => array( + 'type' => 'string', + ), + 'KeyUsage' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + 'EncryptResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'CiphertextBlob' => array( + 'type' => 'string', + 'location' => 'json', + 'filters' => array( + 'base64_decode', + ), + ), + 'KeyId' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + ), + 'GenerateDataKeyResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'CiphertextBlob' => array( + 'type' => 'string', + 'location' => 'json', + 'filters' => array( + 'base64_decode', + ), + ), + 'Plaintext' => array( + 'type' => 'string', + 'location' => 'json', + 'filters' => array( + 'base64_decode', + ), + ), + 'KeyId' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + ), + 'GenerateDataKeyWithoutPlaintextResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'CiphertextBlob' => array( + 'type' => 'string', + 'location' => 'json', + 'filters' => array( + 'base64_decode', + ), + ), + 'KeyId' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + ), + 'GenerateRandomResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'Plaintext' => array( + 'type' => 'string', + 'location' => 'json', + 'filters' => array( + 'base64_decode', + ), + ), + ), + ), + 'GetKeyPolicyResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'Policy' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + ), + 'GetKeyRotationStatusResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'KeyRotationEnabled' => array( + 'type' => 'boolean', + 'location' => 'json', + ), + ), + ), + 'ListAliasesResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'Aliases' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'AliasListEntry', + 'type' => 'object', + 'properties' => array( + 'AliasName' => array( + 'type' => 'string', + ), + 'AliasArn' => array( + 'type' => 'string', + ), + 'TargetKeyId' => array( + 'type' => 'string', + ), + ), + ), + ), + 'NextMarker' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'Truncated' => array( + 'type' => 'boolean', + 'location' => 'json', + ), + ), + ), + 'ListGrantsResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'Grants' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'GrantListEntry', + 'type' => 'object', + 'properties' => array( + 'GrantId' => array( + 'type' => 'string', + ), + 'GranteePrincipal' => array( + 'type' => 'string', + ), + 'RetiringPrincipal' => array( + 'type' => 'string', + ), + 'IssuingAccount' => array( + 'type' => 'string', + ), + 'Operations' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'GrantOperation', + 'type' => 'string', + ), + ), + 'Constraints' => array( + 'type' => 'object', + 'properties' => array( + 'EncryptionContextSubset' => array( + 'type' => 'object', + 'additionalProperties' => array( + 'type' => 'string', + ), + ), + 'EncryptionContextEquals' => array( + 'type' => 'object', + 'additionalProperties' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + ), + 'NextMarker' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'Truncated' => array( + 'type' => 'boolean', + 'location' => 'json', + ), + ), + ), + 'ListKeyPoliciesResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'PolicyNames' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'PolicyNameType', + 'type' => 'string', + ), + ), + 'NextMarker' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'Truncated' => array( + 'type' => 'boolean', + 'location' => 'json', + ), + ), + ), + 'ListKeysResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'Keys' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'KeyListEntry', + 'type' => 'object', + 'properties' => array( + 'KeyId' => array( + 'type' => 'string', + ), + 'KeyArn' => array( + 'type' => 'string', + ), + ), + ), + ), + 'NextMarker' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'Truncated' => array( + 'type' => 'boolean', + 'location' => 'json', + ), + ), + ), + 'ReEncryptResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'CiphertextBlob' => array( + 'type' => 'string', + 'location' => 'json', + 'filters' => array( + 'base64_decode', + ), + ), + 'SourceKeyId' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'KeyId' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + ), + ), +); diff --git a/inc/aws-sdk/Aws/Lambda/Exception/LambdaException.php b/inc/aws-sdk/Aws/Lambda/Exception/LambdaException.php new file mode 100644 index 0000000..29a2f84 --- /dev/null +++ b/inc/aws-sdk/Aws/Lambda/Exception/LambdaException.php @@ -0,0 +1,10 @@ +setConfig($config) + ->setConfigDefaults(array( + Options::VERSION => self::LATEST_API_VERSION, + Options::SERVICE_DESCRIPTION => __DIR__ . '/Resources/lambda-%s.php' + )) + ->setExceptionParser(new JsonRestExceptionParser()) + ->build(); + } +} diff --git a/inc/aws-sdk/Aws/Lambda/Resources/lambda-2014-11-11.php b/inc/aws-sdk/Aws/Lambda/Resources/lambda-2014-11-11.php new file mode 100644 index 0000000..84513e0 --- /dev/null +++ b/inc/aws-sdk/Aws/Lambda/Resources/lambda-2014-11-11.php @@ -0,0 +1,742 @@ + '2014-11-11', + 'endpointPrefix' => 'lambda', + 'serviceFullName' => 'AWS Lambda', + 'serviceType' => 'rest-json', + 'signatureVersion' => 'v4', + 'namespace' => 'Lambda', + 'operations' => array( + 'AddEventSource' => array( + 'httpMethod' => 'POST', + 'uri' => '/2014-11-13/event-source-mappings/', + 'class' => 'Guzzle\\Service\\Command\\OperationCommand', + 'responseClass' => 'EventSourceConfiguration', + 'responseType' => 'model', + 'parameters' => array( + 'EventSource' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + ), + 'FunctionName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 64, + ), + 'Role' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + ), + 'BatchSize' => array( + 'type' => 'numeric', + 'location' => 'json', + ), + 'Parameters' => array( + 'type' => 'object', + 'location' => 'json', + 'additionalProperties' => array( + 'type' => 'string', + 'data' => array( + 'shape_name' => 'String', + ), + ), + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The AWS Lambda service encountered an internal error.', + 'class' => 'ServiceException', + ), + array( + 'reason' => 'One of the parameters in the request is invalid. For example, if you provided an IAM role for AWS Lambda to assume in the UploadFunction or the UpdateFunctionConfiguration API, that AWS Lambda is unable to assume you will get this exception.', + 'class' => 'InvalidParameterValueException', + ), + ), + ), + 'DeleteFunction' => array( + 'httpMethod' => 'DELETE', + 'uri' => '/2014-11-13/functions/{FunctionName}', + 'class' => 'Guzzle\\Service\\Command\\OperationCommand', + 'responseClass' => 'EmptyOutput', + 'responseType' => 'model', + 'parameters' => array( + 'FunctionName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'uri', + 'minLength' => 1, + 'maxLength' => 64, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The AWS Lambda service encountered an internal error.', + 'class' => 'ServiceException', + ), + array( + 'reason' => 'The function or the event source specified in the request does not exist.', + 'class' => 'ResourceNotFoundException', + ), + ), + ), + 'GetEventSource' => array( + 'httpMethod' => 'GET', + 'uri' => '/2014-11-13/event-source-mappings/{UUID}', + 'class' => 'Guzzle\\Service\\Command\\OperationCommand', + 'responseClass' => 'EventSourceConfiguration', + 'responseType' => 'model', + 'parameters' => array( + 'UUID' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'uri', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The AWS Lambda service encountered an internal error.', + 'class' => 'ServiceException', + ), + array( + 'reason' => 'The function or the event source specified in the request does not exist.', + 'class' => 'ResourceNotFoundException', + ), + array( + 'reason' => 'One of the parameters in the request is invalid. For example, if you provided an IAM role for AWS Lambda to assume in the UploadFunction or the UpdateFunctionConfiguration API, that AWS Lambda is unable to assume you will get this exception.', + 'class' => 'InvalidParameterValueException', + ), + ), + ), + 'GetFunction' => array( + 'httpMethod' => 'GET', + 'uri' => '/2014-11-13/functions/{FunctionName}', + 'class' => 'Guzzle\\Service\\Command\\OperationCommand', + 'responseClass' => 'GetFunctionResponse', + 'responseType' => 'model', + 'parameters' => array( + 'FunctionName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'uri', + 'minLength' => 1, + 'maxLength' => 64, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The AWS Lambda service encountered an internal error.', + 'class' => 'ServiceException', + ), + array( + 'reason' => 'The function or the event source specified in the request does not exist.', + 'class' => 'ResourceNotFoundException', + ), + ), + ), + 'GetFunctionConfiguration' => array( + 'httpMethod' => 'GET', + 'uri' => '/2014-11-13/functions/{FunctionName}/configuration', + 'class' => 'Guzzle\\Service\\Command\\OperationCommand', + 'responseClass' => 'FunctionConfiguration', + 'responseType' => 'model', + 'parameters' => array( + 'FunctionName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'uri', + 'minLength' => 1, + 'maxLength' => 64, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The AWS Lambda service encountered an internal error.', + 'class' => 'ServiceException', + ), + array( + 'reason' => 'The function or the event source specified in the request does not exist.', + 'class' => 'ResourceNotFoundException', + ), + ), + ), + 'InvokeAsync' => array( + 'httpMethod' => 'POST', + 'uri' => '/2014-11-13/functions/{FunctionName}/invoke-async/', + 'class' => 'Guzzle\\Service\\Command\\OperationCommand', + 'responseClass' => 'InvokeAsyncResponse', + 'responseType' => 'model', + 'parameters' => array( + 'FunctionName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'uri', + 'minLength' => 1, + 'maxLength' => 64, + ), + 'InvokeArgs' => array( + 'required' => true, + 'type' => array( + 'string', + 'object', + ), + 'location' => 'body', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The AWS Lambda service encountered an internal error.', + 'class' => 'ServiceException', + ), + array( + 'reason' => 'The function or the event source specified in the request does not exist.', + 'class' => 'ResourceNotFoundException', + ), + array( + 'reason' => 'The request body could not be parsed as JSON.', + 'class' => 'InvalidRequestContentException', + ), + ), + ), + 'ListEventSources' => array( + 'httpMethod' => 'GET', + 'uri' => '/2014-11-13/event-source-mappings/', + 'class' => 'Guzzle\\Service\\Command\\OperationCommand', + 'responseClass' => 'ListEventSourcesResponse', + 'responseType' => 'model', + 'parameters' => array( + 'EventSourceArn' => array( + 'type' => 'string', + 'location' => 'query', + 'sentAs' => 'EventSource', + ), + 'FunctionName' => array( + 'type' => 'string', + 'location' => 'query', + 'minLength' => 1, + 'maxLength' => 64, + ), + 'Marker' => array( + 'type' => 'string', + 'location' => 'query', + ), + 'MaxItems' => array( + 'type' => 'numeric', + 'location' => 'query', + 'minimum' => 1, + 'maximum' => 10000, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The AWS Lambda service encountered an internal error.', + 'class' => 'ServiceException', + ), + array( + 'reason' => 'The function or the event source specified in the request does not exist.', + 'class' => 'ResourceNotFoundException', + ), + array( + 'reason' => 'One of the parameters in the request is invalid. For example, if you provided an IAM role for AWS Lambda to assume in the UploadFunction or the UpdateFunctionConfiguration API, that AWS Lambda is unable to assume you will get this exception.', + 'class' => 'InvalidParameterValueException', + ), + ), + ), + 'ListFunctions' => array( + 'httpMethod' => 'GET', + 'uri' => '/2014-11-13/functions/', + 'class' => 'Guzzle\\Service\\Command\\OperationCommand', + 'responseClass' => 'ListFunctionsResponse', + 'responseType' => 'model', + 'parameters' => array( + 'Marker' => array( + 'type' => 'string', + 'location' => 'query', + ), + 'MaxItems' => array( + 'type' => 'numeric', + 'location' => 'query', + 'minimum' => 1, + 'maximum' => 10000, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The AWS Lambda service encountered an internal error.', + 'class' => 'ServiceException', + ), + ), + ), + 'RemoveEventSource' => array( + 'httpMethod' => 'DELETE', + 'uri' => '/2014-11-13/event-source-mappings/{UUID}', + 'class' => 'Guzzle\\Service\\Command\\OperationCommand', + 'responseClass' => 'EmptyOutput', + 'responseType' => 'model', + 'parameters' => array( + 'UUID' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'uri', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The AWS Lambda service encountered an internal error.', + 'class' => 'ServiceException', + ), + array( + 'reason' => 'The function or the event source specified in the request does not exist.', + 'class' => 'ResourceNotFoundException', + ), + array( + 'reason' => 'One of the parameters in the request is invalid. For example, if you provided an IAM role for AWS Lambda to assume in the UploadFunction or the UpdateFunctionConfiguration API, that AWS Lambda is unable to assume you will get this exception.', + 'class' => 'InvalidParameterValueException', + ), + ), + ), + 'UpdateFunctionConfiguration' => array( + 'httpMethod' => 'PUT', + 'uri' => '/2014-11-13/functions/{FunctionName}/configuration', + 'class' => 'Guzzle\\Service\\Command\\OperationCommand', + 'responseClass' => 'FunctionConfiguration', + 'responseType' => 'model', + 'parameters' => array( + 'FunctionName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'uri', + 'minLength' => 1, + 'maxLength' => 64, + ), + 'Role' => array( + 'type' => 'string', + 'location' => 'query', + ), + 'Handler' => array( + 'type' => 'string', + 'location' => 'query', + ), + 'Description' => array( + 'type' => 'string', + 'location' => 'query', + 'maxLength' => 256, + ), + 'Timeout' => array( + 'type' => 'numeric', + 'location' => 'query', + 'minimum' => 1, + 'maximum' => 60, + ), + 'MemorySize' => array( + 'type' => 'numeric', + 'location' => 'query', + 'minimum' => 128, + 'maximum' => 1024, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The AWS Lambda service encountered an internal error.', + 'class' => 'ServiceException', + ), + array( + 'reason' => 'The function or the event source specified in the request does not exist.', + 'class' => 'ResourceNotFoundException', + ), + array( + 'reason' => 'One of the parameters in the request is invalid. For example, if you provided an IAM role for AWS Lambda to assume in the UploadFunction or the UpdateFunctionConfiguration API, that AWS Lambda is unable to assume you will get this exception.', + 'class' => 'InvalidParameterValueException', + ), + ), + ), + 'UploadFunction' => array( + 'httpMethod' => 'PUT', + 'uri' => '/2014-11-13/functions/{FunctionName}', + 'class' => 'Guzzle\\Service\\Command\\OperationCommand', + 'responseClass' => 'FunctionConfiguration', + 'responseType' => 'model', + 'parameters' => array( + 'FunctionName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'uri', + 'minLength' => 1, + 'maxLength' => 64, + ), + 'FunctionZip' => array( + 'required' => true, + 'type' => array( + 'string', + 'object', + ), + 'location' => 'body', + ), + 'Runtime' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'query', + ), + 'Role' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'query', + ), + 'Handler' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'query', + ), + 'Mode' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'query', + ), + 'Description' => array( + 'type' => 'string', + 'location' => 'query', + 'maxLength' => 256, + ), + 'Timeout' => array( + 'type' => 'numeric', + 'location' => 'query', + 'minimum' => 1, + 'maximum' => 60, + ), + 'MemorySize' => array( + 'type' => 'numeric', + 'location' => 'query', + 'minimum' => 128, + 'maximum' => 1024, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The AWS Lambda service encountered an internal error.', + 'class' => 'ServiceException', + ), + array( + 'reason' => 'One of the parameters in the request is invalid. For example, if you provided an IAM role for AWS Lambda to assume in the UploadFunction or the UpdateFunctionConfiguration API, that AWS Lambda is unable to assume you will get this exception.', + 'class' => 'InvalidParameterValueException', + ), + array( + 'reason' => 'The function or the event source specified in the request does not exist.', + 'class' => 'ResourceNotFoundException', + ), + ), + ), + ), + 'models' => array( + 'EventSourceConfiguration' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'UUID' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'BatchSize' => array( + 'type' => 'numeric', + 'location' => 'json', + ), + 'EventSource' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'FunctionName' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'Parameters' => array( + 'type' => 'object', + 'location' => 'json', + 'additionalProperties' => array( + 'type' => 'string', + ), + ), + 'Role' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'LastModified' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'IsActive' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'Status' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + ), + 'EmptyOutput' => array( + 'type' => 'object', + 'additionalProperties' => true, + ), + 'GetFunctionResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'Configuration' => array( + 'type' => 'object', + 'location' => 'json', + 'properties' => array( + 'FunctionName' => array( + 'type' => 'string', + ), + 'FunctionARN' => array( + 'type' => 'string', + ), + 'ConfigurationId' => array( + 'type' => 'string', + ), + 'Runtime' => array( + 'type' => 'string', + ), + 'Role' => array( + 'type' => 'string', + ), + 'Handler' => array( + 'type' => 'string', + ), + 'Mode' => array( + 'type' => 'string', + ), + 'CodeSize' => array( + 'type' => 'numeric', + ), + 'Description' => array( + 'type' => 'string', + ), + 'Timeout' => array( + 'type' => 'numeric', + ), + 'MemorySize' => array( + 'type' => 'numeric', + ), + 'LastModified' => array( + 'type' => 'string', + ), + ), + ), + 'Code' => array( + 'type' => 'object', + 'location' => 'json', + 'properties' => array( + 'RepositoryType' => array( + 'type' => 'string', + ), + 'Location' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + 'FunctionConfiguration' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'FunctionName' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'FunctionARN' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'ConfigurationId' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'Runtime' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'Role' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'Handler' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'Mode' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'CodeSize' => array( + 'type' => 'numeric', + 'location' => 'json', + ), + 'Description' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'Timeout' => array( + 'type' => 'numeric', + 'location' => 'json', + ), + 'MemorySize' => array( + 'type' => 'numeric', + 'location' => 'json', + ), + 'LastModified' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + ), + 'InvokeAsyncResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'Status' => array( + 'type' => 'numeric', + 'location' => 'statusCode', + ), + ), + ), + 'ListEventSourcesResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'NextMarker' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'EventSources' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'EventSourceConfiguration', + 'type' => 'object', + 'properties' => array( + 'UUID' => array( + 'type' => 'string', + ), + 'BatchSize' => array( + 'type' => 'numeric', + ), + 'EventSource' => array( + 'type' => 'string', + ), + 'FunctionName' => array( + 'type' => 'string', + ), + 'Parameters' => array( + 'type' => 'object', + 'additionalProperties' => array( + 'type' => 'string', + ), + ), + 'Role' => array( + 'type' => 'string', + ), + 'LastModified' => array( + 'type' => 'string', + ), + 'IsActive' => array( + 'type' => 'string', + ), + 'Status' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + 'ListFunctionsResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'NextMarker' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'Functions' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'FunctionConfiguration', + 'type' => 'object', + 'properties' => array( + 'FunctionName' => array( + 'type' => 'string', + ), + 'FunctionARN' => array( + 'type' => 'string', + ), + 'ConfigurationId' => array( + 'type' => 'string', + ), + 'Runtime' => array( + 'type' => 'string', + ), + 'Role' => array( + 'type' => 'string', + ), + 'Handler' => array( + 'type' => 'string', + ), + 'Mode' => array( + 'type' => 'string', + ), + 'CodeSize' => array( + 'type' => 'numeric', + ), + 'Description' => array( + 'type' => 'string', + ), + 'Timeout' => array( + 'type' => 'numeric', + ), + 'MemorySize' => array( + 'type' => 'numeric', + ), + 'LastModified' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + ), + '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/inc/aws-sdk/Aws/Lambda/Resources/lambda-2015-03-31.php b/inc/aws-sdk/Aws/Lambda/Resources/lambda-2015-03-31.php new file mode 100644 index 0000000..6404862 --- /dev/null +++ b/inc/aws-sdk/Aws/Lambda/Resources/lambda-2015-03-31.php @@ -0,0 +1,1058 @@ + '2015-03-31', + 'endpointPrefix' => 'lambda', + 'serviceFullName' => 'AWS Lambda', + 'serviceType' => 'rest-json', + 'signatureVersion' => 'v4', + 'namespace' => 'Lambda', + 'operations' => array( + 'AddPermission' => array( + 'httpMethod' => 'POST', + 'uri' => '/2015-03-31/functions/{FunctionName}/versions/HEAD/policy', + 'class' => 'Guzzle\\Service\\Command\\OperationCommand', + 'responseClass' => 'AddPermissionResponse', + 'responseType' => 'model', + 'parameters' => array( + 'FunctionName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'uri', + 'minLength' => 1, + 'maxLength' => 111, + ), + 'StatementId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 100, + ), + 'Action' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + ), + 'Principal' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + ), + 'SourceArn' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'SourceAccount' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The AWS Lambda service encountered an internal error.', + 'class' => 'ServiceException', + ), + array( + 'reason' => 'The resource (for example, a Lambda function or access policy statement) specified in the request does not exist.', + 'class' => 'ResourceNotFoundException', + ), + array( + 'reason' => 'The resource already exists.', + 'class' => 'ResourceConflictException', + ), + array( + 'reason' => 'One of the parameters in the request is invalid. For example, if you provided an IAM role for AWS Lambda to assume in the CreateFunction or the UpdateFunctionConfiguration API, that AWS Lambda is unable to assume you will get this exception.', + 'class' => 'InvalidParameterValueException', + ), + array( + 'reason' => 'Lambda function access policy is limited to 20 KB.', + 'class' => 'PolicyLengthExceededException', + ), + array( + 'class' => 'TooManyRequestsException', + ), + ), + ), + 'CreateEventSourceMapping' => array( + 'httpMethod' => 'POST', + 'uri' => '/2015-03-31/event-source-mappings/', + 'class' => 'Guzzle\\Service\\Command\\OperationCommand', + 'responseClass' => 'EventSourceMappingConfiguration', + 'responseType' => 'model', + 'parameters' => array( + 'EventSourceArn' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + ), + 'FunctionName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 111, + ), + 'Enabled' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'json', + ), + 'BatchSize' => array( + 'type' => 'numeric', + 'location' => 'json', + 'minimum' => 1, + 'maximum' => 10000, + ), + 'StartingPosition' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The AWS Lambda service encountered an internal error.', + 'class' => 'ServiceException', + ), + array( + 'reason' => 'One of the parameters in the request is invalid. For example, if you provided an IAM role for AWS Lambda to assume in the CreateFunction or the UpdateFunctionConfiguration API, that AWS Lambda is unable to assume you will get this exception.', + 'class' => 'InvalidParameterValueException', + ), + array( + 'reason' => 'The resource already exists.', + 'class' => 'ResourceConflictException', + ), + array( + 'class' => 'TooManyRequestsException', + ), + ), + ), + 'CreateFunction' => array( + 'httpMethod' => 'POST', + 'uri' => '/2015-03-31/functions', + 'class' => 'Guzzle\\Service\\Command\\OperationCommand', + 'responseClass' => 'FunctionConfiguration', + 'responseType' => 'model', + 'parameters' => array( + 'FunctionName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 111, + ), + 'Runtime' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + ), + 'Role' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + ), + 'Handler' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'maxLength' => 128, + ), + 'Description' => array( + 'type' => 'string', + 'location' => 'json', + 'maxLength' => 256, + ), + 'Timeout' => array( + 'type' => 'numeric', + 'location' => 'json', + 'minimum' => 1, + 'maximum' => 60, + ), + 'MemorySize' => array( + 'type' => 'numeric', + 'location' => 'json', + 'minimum' => 128, + 'maximum' => 1024, + ), + 'Code' => array( + 'required' => true, + 'type' => 'object', + 'location' => 'json', + 'properties' => array( + 'ZipFile' => array( + 'type' => array( + 'string', + 'object', + ), + ), + ), + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The AWS Lambda service encountered an internal error.', + 'class' => 'ServiceException', + ), + array( + 'reason' => 'One of the parameters in the request is invalid. For example, if you provided an IAM role for AWS Lambda to assume in the CreateFunction or the UpdateFunctionConfiguration API, that AWS Lambda is unable to assume you will get this exception.', + 'class' => 'InvalidParameterValueException', + ), + array( + 'reason' => 'The resource (for example, a Lambda function or access policy statement) specified in the request does not exist.', + 'class' => 'ResourceNotFoundException', + ), + array( + 'reason' => 'The resource already exists.', + 'class' => 'ResourceConflictException', + ), + array( + 'class' => 'TooManyRequestsException', + ), + ), + ), + 'DeleteEventSourceMapping' => array( + 'httpMethod' => 'DELETE', + 'uri' => '/2015-03-31/event-source-mappings/{UUID}', + 'class' => 'Guzzle\\Service\\Command\\OperationCommand', + 'responseClass' => 'EventSourceMappingConfiguration', + 'responseType' => 'model', + 'parameters' => array( + 'UUID' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'uri', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The AWS Lambda service encountered an internal error.', + 'class' => 'ServiceException', + ), + array( + 'reason' => 'The resource (for example, a Lambda function or access policy statement) specified in the request does not exist.', + 'class' => 'ResourceNotFoundException', + ), + array( + 'reason' => 'One of the parameters in the request is invalid. For example, if you provided an IAM role for AWS Lambda to assume in the CreateFunction or the UpdateFunctionConfiguration API, that AWS Lambda is unable to assume you will get this exception.', + 'class' => 'InvalidParameterValueException', + ), + array( + 'class' => 'TooManyRequestsException', + ), + ), + ), + 'DeleteFunction' => array( + 'httpMethod' => 'DELETE', + 'uri' => '/2015-03-31/functions/{FunctionName}', + 'class' => 'Guzzle\\Service\\Command\\OperationCommand', + 'responseClass' => 'EmptyOutput', + 'responseType' => 'model', + 'parameters' => array( + 'FunctionName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'uri', + 'minLength' => 1, + 'maxLength' => 111, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The AWS Lambda service encountered an internal error.', + 'class' => 'ServiceException', + ), + array( + 'reason' => 'The resource (for example, a Lambda function or access policy statement) specified in the request does not exist.', + 'class' => 'ResourceNotFoundException', + ), + array( + 'class' => 'TooManyRequestsException', + ), + ), + ), + 'GetEventSourceMapping' => array( + 'httpMethod' => 'GET', + 'uri' => '/2015-03-31/event-source-mappings/{UUID}', + 'class' => 'Guzzle\\Service\\Command\\OperationCommand', + 'responseClass' => 'EventSourceMappingConfiguration', + 'responseType' => 'model', + 'parameters' => array( + 'UUID' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'uri', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The AWS Lambda service encountered an internal error.', + 'class' => 'ServiceException', + ), + array( + 'reason' => 'The resource (for example, a Lambda function or access policy statement) specified in the request does not exist.', + 'class' => 'ResourceNotFoundException', + ), + array( + 'reason' => 'One of the parameters in the request is invalid. For example, if you provided an IAM role for AWS Lambda to assume in the CreateFunction or the UpdateFunctionConfiguration API, that AWS Lambda is unable to assume you will get this exception.', + 'class' => 'InvalidParameterValueException', + ), + array( + 'class' => 'TooManyRequestsException', + ), + ), + ), + 'GetFunction' => array( + 'httpMethod' => 'GET', + 'uri' => '/2015-03-31/functions/{FunctionName}/versions/HEAD', + 'class' => 'Guzzle\\Service\\Command\\OperationCommand', + 'responseClass' => 'GetFunctionResponse', + 'responseType' => 'model', + 'parameters' => array( + 'FunctionName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'uri', + 'minLength' => 1, + 'maxLength' => 111, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The AWS Lambda service encountered an internal error.', + 'class' => 'ServiceException', + ), + array( + 'reason' => 'The resource (for example, a Lambda function or access policy statement) specified in the request does not exist.', + 'class' => 'ResourceNotFoundException', + ), + array( + 'class' => 'TooManyRequestsException', + ), + ), + ), + 'GetFunctionConfiguration' => array( + 'httpMethod' => 'GET', + 'uri' => '/2015-03-31/functions/{FunctionName}/versions/HEAD/configuration', + 'class' => 'Guzzle\\Service\\Command\\OperationCommand', + 'responseClass' => 'FunctionConfiguration', + 'responseType' => 'model', + 'parameters' => array( + 'FunctionName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'uri', + 'minLength' => 1, + 'maxLength' => 111, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The AWS Lambda service encountered an internal error.', + 'class' => 'ServiceException', + ), + array( + 'reason' => 'The resource (for example, a Lambda function or access policy statement) specified in the request does not exist.', + 'class' => 'ResourceNotFoundException', + ), + array( + 'class' => 'TooManyRequestsException', + ), + ), + ), + 'GetPolicy' => array( + 'httpMethod' => 'GET', + 'uri' => '/2015-03-31/functions/{FunctionName}/versions/HEAD/policy', + 'class' => 'Guzzle\\Service\\Command\\OperationCommand', + 'responseClass' => 'GetPolicyResponse', + 'responseType' => 'model', + 'parameters' => array( + 'FunctionName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'uri', + 'minLength' => 1, + 'maxLength' => 111, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The AWS Lambda service encountered an internal error.', + 'class' => 'ServiceException', + ), + array( + 'reason' => 'The resource (for example, a Lambda function or access policy statement) specified in the request does not exist.', + 'class' => 'ResourceNotFoundException', + ), + array( + 'class' => 'TooManyRequestsException', + ), + ), + ), + 'Invoke' => array( + 'httpMethod' => 'POST', + 'uri' => '/2015-03-31/functions/{FunctionName}/invocations', + 'class' => 'Guzzle\\Service\\Command\\OperationCommand', + 'responseClass' => 'InvocationResponse', + 'responseType' => 'model', + 'parameters' => array( + 'FunctionName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'uri', + 'minLength' => 1, + 'maxLength' => 111, + ), + 'InvocationType' => array( + 'type' => 'string', + 'location' => 'header', + 'sentAs' => 'X-Amz-Invocation-Type', + ), + 'LogType' => array( + 'type' => 'string', + 'location' => 'header', + 'sentAs' => 'X-Amz-Log-Type', + ), + 'ClientContext' => array( + 'type' => 'string', + 'location' => 'header', + 'sentAs' => 'X-Amz-Client-Context', + ), + 'Payload' => array( + 'type' => array( + 'string', + 'object', + ), + 'location' => 'body', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The AWS Lambda service encountered an internal error.', + 'class' => 'ServiceException', + ), + array( + 'reason' => 'The resource (for example, a Lambda function or access policy statement) specified in the request does not exist.', + 'class' => 'ResourceNotFoundException', + ), + array( + 'reason' => 'The request body could not be parsed as JSON.', + 'class' => 'InvalidRequestContentException', + ), + array( + 'class' => 'RequestTooLargeException', + ), + array( + 'class' => 'UnsupportedMediaTypeException', + ), + array( + 'class' => 'TooManyRequestsException', + ), + ), + ), + 'InvokeAsync' => array( + 'httpMethod' => 'POST', + 'uri' => '/2014-11-13/functions/{FunctionName}/invoke-async/', + 'class' => 'Guzzle\\Service\\Command\\OperationCommand', + 'responseClass' => 'InvokeAsyncResponse', + 'responseType' => 'model', + 'parameters' => array( + 'FunctionName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'uri', + 'minLength' => 1, + 'maxLength' => 111, + ), + 'InvokeArgs' => array( + 'required' => true, + 'type' => array( + 'string', + 'object', + ), + 'location' => 'body', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The AWS Lambda service encountered an internal error.', + 'class' => 'ServiceException', + ), + array( + 'reason' => 'The resource (for example, a Lambda function or access policy statement) specified in the request does not exist.', + 'class' => 'ResourceNotFoundException', + ), + array( + 'reason' => 'The request body could not be parsed as JSON.', + 'class' => 'InvalidRequestContentException', + ), + ), + ), + 'ListEventSourceMappings' => array( + 'httpMethod' => 'GET', + 'uri' => '/2015-03-31/event-source-mappings/', + 'class' => 'Guzzle\\Service\\Command\\OperationCommand', + 'responseClass' => 'ListEventSourceMappingsResponse', + 'responseType' => 'model', + 'parameters' => array( + 'EventSourceArn' => array( + 'type' => 'string', + 'location' => 'query', + ), + 'FunctionName' => array( + 'type' => 'string', + 'location' => 'query', + 'minLength' => 1, + 'maxLength' => 111, + ), + 'Marker' => array( + 'type' => 'string', + 'location' => 'query', + ), + 'MaxItems' => array( + 'type' => 'numeric', + 'location' => 'query', + 'minimum' => 1, + 'maximum' => 10000, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The AWS Lambda service encountered an internal error.', + 'class' => 'ServiceException', + ), + array( + 'reason' => 'The resource (for example, a Lambda function or access policy statement) specified in the request does not exist.', + 'class' => 'ResourceNotFoundException', + ), + array( + 'reason' => 'One of the parameters in the request is invalid. For example, if you provided an IAM role for AWS Lambda to assume in the CreateFunction or the UpdateFunctionConfiguration API, that AWS Lambda is unable to assume you will get this exception.', + 'class' => 'InvalidParameterValueException', + ), + array( + 'class' => 'TooManyRequestsException', + ), + ), + ), + 'ListFunctions' => array( + 'httpMethod' => 'GET', + 'uri' => '/2015-03-31/functions/', + 'class' => 'Guzzle\\Service\\Command\\OperationCommand', + 'responseClass' => 'ListFunctionsResponse', + 'responseType' => 'model', + 'parameters' => array( + 'Marker' => array( + 'type' => 'string', + 'location' => 'query', + ), + 'MaxItems' => array( + 'type' => 'numeric', + 'location' => 'query', + 'minimum' => 1, + 'maximum' => 10000, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The AWS Lambda service encountered an internal error.', + 'class' => 'ServiceException', + ), + array( + 'class' => 'TooManyRequestsException', + ), + ), + ), + 'RemovePermission' => array( + 'httpMethod' => 'DELETE', + 'uri' => '/2015-03-31/functions/{FunctionName}/versions/HEAD/policy/{StatementId}', + 'class' => 'Guzzle\\Service\\Command\\OperationCommand', + 'responseClass' => 'EmptyOutput', + 'responseType' => 'model', + 'parameters' => array( + 'FunctionName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'uri', + 'minLength' => 1, + 'maxLength' => 111, + ), + 'StatementId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'uri', + 'minLength' => 1, + 'maxLength' => 100, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The AWS Lambda service encountered an internal error.', + 'class' => 'ServiceException', + ), + array( + 'reason' => 'The resource (for example, a Lambda function or access policy statement) specified in the request does not exist.', + 'class' => 'ResourceNotFoundException', + ), + array( + 'class' => 'TooManyRequestsException', + ), + ), + ), + 'UpdateEventSourceMapping' => array( + 'httpMethod' => 'PUT', + 'uri' => '/2015-03-31/event-source-mappings/{UUID}', + 'class' => 'Guzzle\\Service\\Command\\OperationCommand', + 'responseClass' => 'EventSourceMappingConfiguration', + 'responseType' => 'model', + 'parameters' => array( + 'UUID' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'uri', + ), + 'FunctionName' => array( + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 111, + ), + 'Enabled' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'json', + ), + 'BatchSize' => array( + 'type' => 'numeric', + 'location' => 'json', + 'minimum' => 1, + 'maximum' => 10000, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The AWS Lambda service encountered an internal error.', + 'class' => 'ServiceException', + ), + array( + 'reason' => 'The resource (for example, a Lambda function or access policy statement) specified in the request does not exist.', + 'class' => 'ResourceNotFoundException', + ), + array( + 'reason' => 'One of the parameters in the request is invalid. For example, if you provided an IAM role for AWS Lambda to assume in the CreateFunction or the UpdateFunctionConfiguration API, that AWS Lambda is unable to assume you will get this exception.', + 'class' => 'InvalidParameterValueException', + ), + array( + 'class' => 'TooManyRequestsException', + ), + ), + ), + 'UpdateFunctionCode' => array( + 'httpMethod' => 'PUT', + 'uri' => '/2015-03-31/functions/{FunctionName}/versions/HEAD/code', + 'class' => 'Guzzle\\Service\\Command\\OperationCommand', + 'responseClass' => 'FunctionConfiguration', + 'responseType' => 'model', + 'parameters' => array( + 'FunctionName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'uri', + 'minLength' => 1, + 'maxLength' => 111, + ), + 'ZipFile' => array( + 'required' => true, + 'type' => array( + 'string', + 'object', + ), + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The AWS Lambda service encountered an internal error.', + 'class' => 'ServiceException', + ), + array( + 'reason' => 'The resource (for example, a Lambda function or access policy statement) specified in the request does not exist.', + 'class' => 'ResourceNotFoundException', + ), + array( + 'reason' => 'One of the parameters in the request is invalid. For example, if you provided an IAM role for AWS Lambda to assume in the CreateFunction or the UpdateFunctionConfiguration API, that AWS Lambda is unable to assume you will get this exception.', + 'class' => 'InvalidParameterValueException', + ), + array( + 'class' => 'TooManyRequestsException', + ), + ), + ), + 'UpdateFunctionConfiguration' => array( + 'httpMethod' => 'PUT', + 'uri' => '/2015-03-31/functions/{FunctionName}/versions/HEAD/configuration', + 'class' => 'Guzzle\\Service\\Command\\OperationCommand', + 'responseClass' => 'FunctionConfiguration', + 'responseType' => 'model', + 'parameters' => array( + 'FunctionName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'uri', + 'minLength' => 1, + 'maxLength' => 111, + ), + 'Role' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'Handler' => array( + 'type' => 'string', + 'location' => 'json', + 'maxLength' => 128, + ), + 'Description' => array( + 'type' => 'string', + 'location' => 'json', + 'maxLength' => 256, + ), + 'Timeout' => array( + 'type' => 'numeric', + 'location' => 'json', + 'minimum' => 1, + 'maximum' => 60, + ), + 'MemorySize' => array( + 'type' => 'numeric', + 'location' => 'json', + 'minimum' => 128, + 'maximum' => 1024, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The AWS Lambda service encountered an internal error.', + 'class' => 'ServiceException', + ), + array( + 'reason' => 'The resource (for example, a Lambda function or access policy statement) specified in the request does not exist.', + 'class' => 'ResourceNotFoundException', + ), + array( + 'reason' => 'One of the parameters in the request is invalid. For example, if you provided an IAM role for AWS Lambda to assume in the CreateFunction or the UpdateFunctionConfiguration API, that AWS Lambda is unable to assume you will get this exception.', + 'class' => 'InvalidParameterValueException', + ), + array( + 'class' => 'TooManyRequestsException', + ), + ), + ), + ), + 'models' => array( + 'AddPermissionResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'Statement' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + ), + 'EventSourceMappingConfiguration' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'UUID' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'BatchSize' => array( + 'type' => 'numeric', + 'location' => 'json', + ), + 'EventSourceArn' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'FunctionArn' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'LastModified' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'LastProcessingResult' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'State' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'StateTransitionReason' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + ), + 'FunctionConfiguration' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'FunctionName' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'FunctionArn' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'Runtime' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'Role' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'Handler' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'CodeSize' => array( + 'type' => 'numeric', + 'location' => 'json', + ), + 'Description' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'Timeout' => array( + 'type' => 'numeric', + 'location' => 'json', + ), + 'MemorySize' => array( + 'type' => 'numeric', + 'location' => 'json', + ), + 'LastModified' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + ), + 'EmptyOutput' => array( + 'type' => 'object', + 'additionalProperties' => true, + ), + 'GetFunctionResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'Configuration' => array( + 'type' => 'object', + 'location' => 'json', + 'properties' => array( + 'FunctionName' => array( + 'type' => 'string', + ), + 'FunctionArn' => array( + 'type' => 'string', + ), + 'Runtime' => array( + 'type' => 'string', + ), + 'Role' => array( + 'type' => 'string', + ), + 'Handler' => array( + 'type' => 'string', + ), + 'CodeSize' => array( + 'type' => 'numeric', + ), + 'Description' => array( + 'type' => 'string', + ), + 'Timeout' => array( + 'type' => 'numeric', + ), + 'MemorySize' => array( + 'type' => 'numeric', + ), + 'LastModified' => array( + 'type' => 'string', + ), + ), + ), + 'Code' => array( + 'type' => 'object', + 'location' => 'json', + 'properties' => array( + 'RepositoryType' => array( + 'type' => 'string', + ), + 'Location' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + 'GetPolicyResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'Policy' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + ), + 'InvocationResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'StatusCode' => array( + 'type' => 'numeric', + 'location' => 'statusCode', + ), + 'FunctionError' => array( + 'type' => 'string', + 'location' => 'header', + 'sentAs' => 'X-Amz-Function-Error', + ), + 'LogResult' => array( + 'type' => 'string', + 'location' => 'header', + 'sentAs' => 'X-Amz-Log-Result', + ), + 'Payload' => array( + 'type' => array( + 'string', + 'object', + ), + 'location' => 'json', + ), + ), + ), + 'InvokeAsyncResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'Status' => array( + 'type' => 'numeric', + 'location' => 'statusCode', + ), + ), + ), + 'ListEventSourceMappingsResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'NextMarker' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'EventSourceMappings' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'EventSourceMappingConfiguration', + 'type' => 'object', + 'properties' => array( + 'UUID' => array( + 'type' => 'string', + ), + 'BatchSize' => array( + 'type' => 'numeric', + ), + 'EventSourceArn' => array( + 'type' => 'string', + ), + 'FunctionArn' => array( + 'type' => 'string', + ), + 'LastModified' => array( + 'type' => 'string', + ), + 'LastProcessingResult' => array( + 'type' => 'string', + ), + 'State' => array( + 'type' => 'string', + ), + 'StateTransitionReason' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + 'ListFunctionsResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'NextMarker' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'Functions' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'FunctionConfiguration', + 'type' => 'object', + 'properties' => array( + 'FunctionName' => array( + 'type' => 'string', + ), + 'FunctionArn' => array( + 'type' => 'string', + ), + 'Runtime' => array( + 'type' => 'string', + ), + 'Role' => array( + 'type' => 'string', + ), + 'Handler' => array( + 'type' => 'string', + ), + 'CodeSize' => array( + 'type' => 'numeric', + ), + 'Description' => array( + 'type' => 'string', + ), + 'Timeout' => array( + 'type' => 'numeric', + ), + 'MemorySize' => array( + 'type' => 'numeric', + ), + 'LastModified' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + ), + 'iterators' => array( + 'ListEventSourceMappings' => array( + 'input_token' => 'Marker', + 'output_token' => 'NextMarker', + 'limit_key' => 'MaxItems', + 'result_key' => 'EventSourceMappings', + ), + 'ListFunctions' => array( + 'input_token' => 'Marker', + 'output_token' => 'NextMarker', + 'limit_key' => 'MaxItems', + 'result_key' => 'Functions', + ), + ), +); diff --git a/inc/aws-sdk/Aws/MachineLearning/Exception/MachineLearningException.php b/inc/aws-sdk/Aws/MachineLearning/Exception/MachineLearningException.php new file mode 100644 index 0000000..edabbb1 --- /dev/null +++ b/inc/aws-sdk/Aws/MachineLearning/Exception/MachineLearningException.php @@ -0,0 +1,10 @@ +setConfig($config) + ->setConfigDefaults(array( + Options::VERSION => self::LATEST_API_VERSION, + Options::SERVICE_DESCRIPTION => __DIR__ . '/Resources/machinelearning-%s.php', + )) + ->setExceptionParser(new JsonQueryExceptionParser()) + ->build(); + + $client->addSubscriber(new PredictEndpointListener()); + + return $client; + } +} diff --git a/inc/aws-sdk/Aws/MachineLearning/PredictEndpointListener.php b/inc/aws-sdk/Aws/MachineLearning/PredictEndpointListener.php new file mode 100644 index 0000000..afa4283 --- /dev/null +++ b/inc/aws-sdk/Aws/MachineLearning/PredictEndpointListener.php @@ -0,0 +1,35 @@ + array('onCommandBeforeSend', -255)); + } + + /** + * Updates the request URL to use the Predict Endpoint + * + * @param Event $event Event emitted + */ + public function onCommandBeforeSend(Event $event) + { + /** @var AbstractCommand $command */ + $command = $event['command']; + if ($command->getName() === 'Predict') { + $request = $command->getRequest(); + $requestUrl = $request->getUrl(true); + $request->setUrl($requestUrl->combine($command->get('PredictEndpoint'))); + $request->getParams()->remove('PredictEndpoint'); + } + } +} diff --git a/inc/aws-sdk/Aws/MachineLearning/Resources/machinelearning-2014-12-12.php b/inc/aws-sdk/Aws/MachineLearning/Resources/machinelearning-2014-12-12.php new file mode 100644 index 0000000..b31d049 --- /dev/null +++ b/inc/aws-sdk/Aws/MachineLearning/Resources/machinelearning-2014-12-12.php @@ -0,0 +1,2548 @@ + '2014-12-12', + 'endpointPrefix' => 'machinelearning', + 'serviceFullName' => 'Amazon Machine Learning', + 'serviceType' => 'json', + 'jsonVersion' => '1.1', + 'targetPrefix' => 'AmazonML_20141212.', + 'signatureVersion' => 'v4', + 'namespace' => 'MachineLearning', + 'operations' => array( + 'CreateBatchPrediction' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'CreateBatchPredictionOutput', + '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' => 'AmazonML_20141212.CreateBatchPrediction', + ), + 'BatchPredictionId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 64, + ), + 'BatchPredictionName' => array( + 'type' => 'string', + 'location' => 'json', + 'maxLength' => 1024, + ), + 'MLModelId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 64, + ), + 'BatchPredictionDataSourceId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 64, + ), + 'OutputUri' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'maxLength' => 2048, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'An error on the client occurred. Typically, the cause is an invalid input value.', + 'class' => 'InvalidInputException', + ), + array( + 'reason' => 'An error on the server occurred when trying to process a request.', + 'class' => 'InternalServerException', + ), + array( + 'reason' => 'A second request to use or change an object was not allowed. This can result from retrying a request using a parameter that was not present in the original request.', + 'class' => 'IdempotentParameterMismatchException', + ), + ), + ), + 'CreateDataSourceFromRDS' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'CreateDataSourceFromRDSOutput', + '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' => 'AmazonML_20141212.CreateDataSourceFromRDS', + ), + 'DataSourceId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 64, + ), + 'DataSourceName' => array( + 'type' => 'string', + 'location' => 'json', + 'maxLength' => 1024, + ), + 'RDSData' => array( + 'required' => true, + 'type' => 'object', + 'location' => 'json', + 'properties' => array( + 'DatabaseInformation' => array( + 'required' => true, + 'type' => 'object', + 'properties' => array( + 'InstanceIdentifier' => array( + 'required' => true, + 'type' => 'string', + 'minLength' => 1, + 'maxLength' => 63, + ), + 'DatabaseName' => array( + 'required' => true, + 'type' => 'string', + 'minLength' => 1, + 'maxLength' => 64, + ), + ), + ), + 'SelectSqlQuery' => array( + 'required' => true, + 'type' => 'string', + 'minLength' => 1, + 'maxLength' => 16777216, + ), + 'DatabaseCredentials' => array( + 'required' => true, + 'type' => 'object', + 'properties' => array( + 'Username' => array( + 'required' => true, + 'type' => 'string', + 'minLength' => 1, + 'maxLength' => 128, + ), + 'Password' => array( + 'required' => true, + 'type' => 'string', + 'minLength' => 8, + 'maxLength' => 128, + ), + ), + ), + 'S3StagingLocation' => array( + 'required' => true, + 'type' => 'string', + 'maxLength' => 2048, + ), + 'DataRearrangement' => array( + 'type' => 'string', + ), + 'DataSchema' => array( + 'type' => 'string', + 'maxLength' => 131071, + ), + 'DataSchemaUri' => array( + 'type' => 'string', + 'maxLength' => 2048, + ), + 'ResourceRole' => array( + 'required' => true, + 'type' => 'string', + 'minLength' => 1, + 'maxLength' => 64, + ), + 'ServiceRole' => array( + 'required' => true, + 'type' => 'string', + 'minLength' => 1, + 'maxLength' => 64, + ), + 'SubnetId' => array( + 'required' => true, + 'type' => 'string', + 'minLength' => 1, + 'maxLength' => 255, + ), + 'SecurityGroupIds' => array( + 'required' => true, + 'type' => 'array', + 'items' => array( + 'name' => 'EDPSecurityGroupId', + 'type' => 'string', + 'minLength' => 1, + 'maxLength' => 255, + ), + ), + ), + ), + 'RoleARN' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 100, + ), + 'ComputeStatistics' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'json', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'An error on the client occurred. Typically, the cause is an invalid input value.', + 'class' => 'InvalidInputException', + ), + array( + 'reason' => 'An error on the server occurred when trying to process a request.', + 'class' => 'InternalServerException', + ), + array( + 'reason' => 'A second request to use or change an object was not allowed. This can result from retrying a request using a parameter that was not present in the original request.', + 'class' => 'IdempotentParameterMismatchException', + ), + ), + ), + 'CreateDataSourceFromRedshift' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'CreateDataSourceFromRedshiftOutput', + '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' => 'AmazonML_20141212.CreateDataSourceFromRedshift', + ), + 'DataSourceId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 64, + ), + 'DataSourceName' => array( + 'type' => 'string', + 'location' => 'json', + 'maxLength' => 1024, + ), + 'DataSpec' => array( + 'required' => true, + 'type' => 'object', + 'location' => 'json', + 'properties' => array( + 'DatabaseInformation' => array( + 'required' => true, + 'type' => 'object', + 'properties' => array( + 'DatabaseName' => array( + 'required' => true, + 'type' => 'string', + 'minLength' => 1, + 'maxLength' => 64, + ), + 'ClusterIdentifier' => array( + 'required' => true, + 'type' => 'string', + 'minLength' => 1, + 'maxLength' => 63, + ), + ), + ), + 'SelectSqlQuery' => array( + 'required' => true, + 'type' => 'string', + 'minLength' => 1, + 'maxLength' => 16777216, + ), + 'DatabaseCredentials' => array( + 'required' => true, + 'type' => 'object', + 'properties' => array( + 'Username' => array( + 'required' => true, + 'type' => 'string', + 'minLength' => 1, + 'maxLength' => 128, + ), + 'Password' => array( + 'required' => true, + 'type' => 'string', + 'minLength' => 8, + 'maxLength' => 64, + ), + ), + ), + 'S3StagingLocation' => array( + 'required' => true, + 'type' => 'string', + 'maxLength' => 2048, + ), + 'DataRearrangement' => array( + 'type' => 'string', + ), + 'DataSchema' => array( + 'type' => 'string', + 'maxLength' => 131071, + ), + 'DataSchemaUri' => array( + 'type' => 'string', + 'maxLength' => 2048, + ), + ), + ), + 'RoleARN' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 100, + ), + 'ComputeStatistics' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'json', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'An error on the client occurred. Typically, the cause is an invalid input value.', + 'class' => 'InvalidInputException', + ), + array( + 'reason' => 'An error on the server occurred when trying to process a request.', + 'class' => 'InternalServerException', + ), + array( + 'reason' => 'A second request to use or change an object was not allowed. This can result from retrying a request using a parameter that was not present in the original request.', + 'class' => 'IdempotentParameterMismatchException', + ), + ), + ), + 'CreateDataSourceFromS3' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'CreateDataSourceFromS3Output', + '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' => 'AmazonML_20141212.CreateDataSourceFromS3', + ), + 'DataSourceId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 64, + ), + 'DataSourceName' => array( + 'type' => 'string', + 'location' => 'json', + 'maxLength' => 1024, + ), + 'DataSpec' => array( + 'required' => true, + 'type' => 'object', + 'location' => 'json', + 'properties' => array( + 'DataLocationS3' => array( + 'required' => true, + 'type' => 'string', + 'maxLength' => 2048, + ), + 'DataRearrangement' => array( + 'type' => 'string', + ), + 'DataSchema' => array( + 'type' => 'string', + 'maxLength' => 131071, + ), + 'DataSchemaLocationS3' => array( + 'type' => 'string', + 'maxLength' => 2048, + ), + ), + ), + 'ComputeStatistics' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'json', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'An error on the client occurred. Typically, the cause is an invalid input value.', + 'class' => 'InvalidInputException', + ), + array( + 'reason' => 'An error on the server occurred when trying to process a request.', + 'class' => 'InternalServerException', + ), + array( + 'reason' => 'A second request to use or change an object was not allowed. This can result from retrying a request using a parameter that was not present in the original request.', + 'class' => 'IdempotentParameterMismatchException', + ), + ), + ), + 'CreateEvaluation' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'CreateEvaluationOutput', + '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' => 'AmazonML_20141212.CreateEvaluation', + ), + 'EvaluationId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 64, + ), + 'EvaluationName' => array( + 'type' => 'string', + 'location' => 'json', + 'maxLength' => 1024, + ), + 'MLModelId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 64, + ), + 'EvaluationDataSourceId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 64, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'An error on the client occurred. Typically, the cause is an invalid input value.', + 'class' => 'InvalidInputException', + ), + array( + 'reason' => 'An error on the server occurred when trying to process a request.', + 'class' => 'InternalServerException', + ), + array( + 'reason' => 'A second request to use or change an object was not allowed. This can result from retrying a request using a parameter that was not present in the original request.', + 'class' => 'IdempotentParameterMismatchException', + ), + ), + ), + 'CreateMLModel' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'CreateMLModelOutput', + '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' => 'AmazonML_20141212.CreateMLModel', + ), + 'MLModelId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 64, + ), + 'MLModelName' => array( + 'type' => 'string', + 'location' => 'json', + 'maxLength' => 1024, + ), + 'MLModelType' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + ), + 'Parameters' => array( + 'type' => 'object', + 'location' => 'json', + 'additionalProperties' => array( + 'type' => 'string', + 'data' => array( + 'shape_name' => 'StringType', + ), + ), + ), + 'TrainingDataSourceId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 64, + ), + 'Recipe' => array( + 'type' => 'string', + 'location' => 'json', + 'maxLength' => 131071, + ), + 'RecipeUri' => array( + 'type' => 'string', + 'location' => 'json', + 'maxLength' => 2048, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'An error on the client occurred. Typically, the cause is an invalid input value.', + 'class' => 'InvalidInputException', + ), + array( + 'reason' => 'An error on the server occurred when trying to process a request.', + 'class' => 'InternalServerException', + ), + array( + 'reason' => 'A second request to use or change an object was not allowed. This can result from retrying a request using a parameter that was not present in the original request.', + 'class' => 'IdempotentParameterMismatchException', + ), + ), + ), + 'CreateRealtimeEndpoint' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'CreateRealtimeEndpointOutput', + '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' => 'AmazonML_20141212.CreateRealtimeEndpoint', + ), + 'MLModelId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 64, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'An error on the client occurred. Typically, the cause is an invalid input value.', + 'class' => 'InvalidInputException', + ), + array( + 'reason' => 'A specified resource cannot be located.', + 'class' => 'ResourceNotFoundException', + ), + array( + 'reason' => 'An error on the server occurred when trying to process a request.', + 'class' => 'InternalServerException', + ), + ), + ), + 'DeleteBatchPrediction' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'DeleteBatchPredictionOutput', + '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' => 'AmazonML_20141212.DeleteBatchPrediction', + ), + 'BatchPredictionId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 64, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'An error on the client occurred. Typically, the cause is an invalid input value.', + 'class' => 'InvalidInputException', + ), + array( + 'reason' => 'A specified resource cannot be located.', + 'class' => 'ResourceNotFoundException', + ), + array( + 'reason' => 'An error on the server occurred when trying to process a request.', + 'class' => 'InternalServerException', + ), + ), + ), + 'DeleteDataSource' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'DeleteDataSourceOutput', + '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' => 'AmazonML_20141212.DeleteDataSource', + ), + 'DataSourceId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 64, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'An error on the client occurred. Typically, the cause is an invalid input value.', + 'class' => 'InvalidInputException', + ), + array( + 'reason' => 'A specified resource cannot be located.', + 'class' => 'ResourceNotFoundException', + ), + array( + 'reason' => 'An error on the server occurred when trying to process a request.', + 'class' => 'InternalServerException', + ), + ), + ), + 'DeleteEvaluation' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'DeleteEvaluationOutput', + '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' => 'AmazonML_20141212.DeleteEvaluation', + ), + 'EvaluationId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 64, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'An error on the client occurred. Typically, the cause is an invalid input value.', + 'class' => 'InvalidInputException', + ), + array( + 'reason' => 'A specified resource cannot be located.', + 'class' => 'ResourceNotFoundException', + ), + array( + 'reason' => 'An error on the server occurred when trying to process a request.', + 'class' => 'InternalServerException', + ), + ), + ), + 'DeleteMLModel' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'DeleteMLModelOutput', + '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' => 'AmazonML_20141212.DeleteMLModel', + ), + 'MLModelId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 64, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'An error on the client occurred. Typically, the cause is an invalid input value.', + 'class' => 'InvalidInputException', + ), + array( + 'reason' => 'A specified resource cannot be located.', + 'class' => 'ResourceNotFoundException', + ), + array( + 'reason' => 'An error on the server occurred when trying to process a request.', + 'class' => 'InternalServerException', + ), + ), + ), + 'DeleteRealtimeEndpoint' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'DeleteRealtimeEndpointOutput', + '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' => 'AmazonML_20141212.DeleteRealtimeEndpoint', + ), + 'MLModelId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 64, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'An error on the client occurred. Typically, the cause is an invalid input value.', + 'class' => 'InvalidInputException', + ), + array( + 'reason' => 'A specified resource cannot be located.', + 'class' => 'ResourceNotFoundException', + ), + array( + 'reason' => 'An error on the server occurred when trying to process a request.', + 'class' => 'InternalServerException', + ), + ), + ), + 'DescribeBatchPredictions' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'DescribeBatchPredictionsOutput', + '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' => 'AmazonML_20141212.DescribeBatchPredictions', + ), + 'FilterVariable' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'EQ' => array( + 'type' => 'string', + 'location' => 'json', + 'maxLength' => 1024, + ), + 'GT' => array( + 'type' => 'string', + 'location' => 'json', + 'maxLength' => 1024, + ), + 'LT' => array( + 'type' => 'string', + 'location' => 'json', + 'maxLength' => 1024, + ), + 'GE' => array( + 'type' => 'string', + 'location' => 'json', + 'maxLength' => 1024, + ), + 'LE' => array( + 'type' => 'string', + 'location' => 'json', + 'maxLength' => 1024, + ), + 'NE' => array( + 'type' => 'string', + 'location' => 'json', + 'maxLength' => 1024, + ), + 'Prefix' => array( + 'type' => 'string', + 'location' => 'json', + 'maxLength' => 1024, + ), + 'SortOrder' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'NextToken' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'Limit' => array( + 'type' => 'numeric', + 'location' => 'json', + 'minimum' => 1, + 'maximum' => 100, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'An error on the client occurred. Typically, the cause is an invalid input value.', + 'class' => 'InvalidInputException', + ), + array( + 'reason' => 'An error on the server occurred when trying to process a request.', + 'class' => 'InternalServerException', + ), + ), + ), + 'DescribeDataSources' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'DescribeDataSourcesOutput', + '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' => 'AmazonML_20141212.DescribeDataSources', + ), + 'FilterVariable' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'EQ' => array( + 'type' => 'string', + 'location' => 'json', + 'maxLength' => 1024, + ), + 'GT' => array( + 'type' => 'string', + 'location' => 'json', + 'maxLength' => 1024, + ), + 'LT' => array( + 'type' => 'string', + 'location' => 'json', + 'maxLength' => 1024, + ), + 'GE' => array( + 'type' => 'string', + 'location' => 'json', + 'maxLength' => 1024, + ), + 'LE' => array( + 'type' => 'string', + 'location' => 'json', + 'maxLength' => 1024, + ), + 'NE' => array( + 'type' => 'string', + 'location' => 'json', + 'maxLength' => 1024, + ), + 'Prefix' => array( + 'type' => 'string', + 'location' => 'json', + 'maxLength' => 1024, + ), + 'SortOrder' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'NextToken' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'Limit' => array( + 'type' => 'numeric', + 'location' => 'json', + 'minimum' => 1, + 'maximum' => 100, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'An error on the client occurred. Typically, the cause is an invalid input value.', + 'class' => 'InvalidInputException', + ), + array( + 'reason' => 'An error on the server occurred when trying to process a request.', + 'class' => 'InternalServerException', + ), + ), + ), + 'DescribeEvaluations' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'DescribeEvaluationsOutput', + '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' => 'AmazonML_20141212.DescribeEvaluations', + ), + 'FilterVariable' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'EQ' => array( + 'type' => 'string', + 'location' => 'json', + 'maxLength' => 1024, + ), + 'GT' => array( + 'type' => 'string', + 'location' => 'json', + 'maxLength' => 1024, + ), + 'LT' => array( + 'type' => 'string', + 'location' => 'json', + 'maxLength' => 1024, + ), + 'GE' => array( + 'type' => 'string', + 'location' => 'json', + 'maxLength' => 1024, + ), + 'LE' => array( + 'type' => 'string', + 'location' => 'json', + 'maxLength' => 1024, + ), + 'NE' => array( + 'type' => 'string', + 'location' => 'json', + 'maxLength' => 1024, + ), + 'Prefix' => array( + 'type' => 'string', + 'location' => 'json', + 'maxLength' => 1024, + ), + 'SortOrder' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'NextToken' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'Limit' => array( + 'type' => 'numeric', + 'location' => 'json', + 'minimum' => 1, + 'maximum' => 100, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'An error on the client occurred. Typically, the cause is an invalid input value.', + 'class' => 'InvalidInputException', + ), + array( + 'reason' => 'An error on the server occurred when trying to process a request.', + 'class' => 'InternalServerException', + ), + ), + ), + 'DescribeMLModels' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'DescribeMLModelsOutput', + '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' => 'AmazonML_20141212.DescribeMLModels', + ), + 'FilterVariable' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'EQ' => array( + 'type' => 'string', + 'location' => 'json', + 'maxLength' => 1024, + ), + 'GT' => array( + 'type' => 'string', + 'location' => 'json', + 'maxLength' => 1024, + ), + 'LT' => array( + 'type' => 'string', + 'location' => 'json', + 'maxLength' => 1024, + ), + 'GE' => array( + 'type' => 'string', + 'location' => 'json', + 'maxLength' => 1024, + ), + 'LE' => array( + 'type' => 'string', + 'location' => 'json', + 'maxLength' => 1024, + ), + 'NE' => array( + 'type' => 'string', + 'location' => 'json', + 'maxLength' => 1024, + ), + 'Prefix' => array( + 'type' => 'string', + 'location' => 'json', + 'maxLength' => 1024, + ), + 'SortOrder' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'NextToken' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'Limit' => array( + 'type' => 'numeric', + 'location' => 'json', + 'minimum' => 1, + 'maximum' => 100, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'An error on the client occurred. Typically, the cause is an invalid input value.', + 'class' => 'InvalidInputException', + ), + array( + 'reason' => 'An error on the server occurred when trying to process a request.', + 'class' => 'InternalServerException', + ), + ), + ), + 'GetBatchPrediction' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'GetBatchPredictionOutput', + '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' => 'AmazonML_20141212.GetBatchPrediction', + ), + 'BatchPredictionId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 64, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'An error on the client occurred. Typically, the cause is an invalid input value.', + 'class' => 'InvalidInputException', + ), + array( + 'reason' => 'A specified resource cannot be located.', + 'class' => 'ResourceNotFoundException', + ), + array( + 'reason' => 'An error on the server occurred when trying to process a request.', + 'class' => 'InternalServerException', + ), + ), + ), + 'GetDataSource' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'GetDataSourceOutput', + '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' => 'AmazonML_20141212.GetDataSource', + ), + 'DataSourceId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 64, + ), + 'Verbose' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'json', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'An error on the client occurred. Typically, the cause is an invalid input value.', + 'class' => 'InvalidInputException', + ), + array( + 'reason' => 'A specified resource cannot be located.', + 'class' => 'ResourceNotFoundException', + ), + array( + 'reason' => 'An error on the server occurred when trying to process a request.', + 'class' => 'InternalServerException', + ), + ), + ), + 'GetEvaluation' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'GetEvaluationOutput', + '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' => 'AmazonML_20141212.GetEvaluation', + ), + 'EvaluationId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 64, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'An error on the client occurred. Typically, the cause is an invalid input value.', + 'class' => 'InvalidInputException', + ), + array( + 'reason' => 'A specified resource cannot be located.', + 'class' => 'ResourceNotFoundException', + ), + array( + 'reason' => 'An error on the server occurred when trying to process a request.', + 'class' => 'InternalServerException', + ), + ), + ), + 'GetMLModel' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'GetMLModelOutput', + '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' => 'AmazonML_20141212.GetMLModel', + ), + 'MLModelId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 64, + ), + 'Verbose' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'json', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'An error on the client occurred. Typically, the cause is an invalid input value.', + 'class' => 'InvalidInputException', + ), + array( + 'reason' => 'A specified resource cannot be located.', + 'class' => 'ResourceNotFoundException', + ), + array( + 'reason' => 'An error on the server occurred when trying to process a request.', + 'class' => 'InternalServerException', + ), + ), + ), + 'Predict' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'PredictOutput', + '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' => 'AmazonML_20141212.Predict', + ), + 'MLModelId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 64, + ), + 'Record' => array( + 'required' => true, + 'type' => 'object', + 'location' => 'json', + 'additionalProperties' => array( + 'type' => 'string', + 'maxLength' => 1024, + 'data' => array( + 'shape_name' => 'VariableName', + ), + ), + ), + 'PredictEndpoint' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'maxLength' => 2048, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'An error on the client occurred. Typically, the cause is an invalid input value.', + 'class' => 'InvalidInputException', + ), + array( + 'reason' => 'A specified resource cannot be located.', + 'class' => 'ResourceNotFoundException', + ), + array( + 'reason' => 'The subscriber exceeded the maximum number of operations. This exception can occur when listing objects such as DataSource.', + 'class' => 'LimitExceededException', + ), + array( + 'reason' => 'An error on the server occurred when trying to process a request.', + 'class' => 'InternalServerException', + ), + array( + 'reason' => 'The exception is thrown when a predict request is made to an unmounted MLModel.', + 'class' => 'PredictorNotMountedException', + ), + ), + ), + 'UpdateBatchPrediction' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'UpdateBatchPredictionOutput', + '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' => 'AmazonML_20141212.UpdateBatchPrediction', + ), + 'BatchPredictionId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 64, + ), + 'BatchPredictionName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'maxLength' => 1024, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'An error on the client occurred. Typically, the cause is an invalid input value.', + 'class' => 'InvalidInputException', + ), + array( + 'reason' => 'A specified resource cannot be located.', + 'class' => 'ResourceNotFoundException', + ), + array( + 'reason' => 'An error on the server occurred when trying to process a request.', + 'class' => 'InternalServerException', + ), + ), + ), + 'UpdateDataSource' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'UpdateDataSourceOutput', + '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' => 'AmazonML_20141212.UpdateDataSource', + ), + 'DataSourceId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 64, + ), + 'DataSourceName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'maxLength' => 1024, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'An error on the client occurred. Typically, the cause is an invalid input value.', + 'class' => 'InvalidInputException', + ), + array( + 'reason' => 'A specified resource cannot be located.', + 'class' => 'ResourceNotFoundException', + ), + array( + 'reason' => 'An error on the server occurred when trying to process a request.', + 'class' => 'InternalServerException', + ), + ), + ), + 'UpdateEvaluation' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'UpdateEvaluationOutput', + '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' => 'AmazonML_20141212.UpdateEvaluation', + ), + 'EvaluationId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 64, + ), + 'EvaluationName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'maxLength' => 1024, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'An error on the client occurred. Typically, the cause is an invalid input value.', + 'class' => 'InvalidInputException', + ), + array( + 'reason' => 'A specified resource cannot be located.', + 'class' => 'ResourceNotFoundException', + ), + array( + 'reason' => 'An error on the server occurred when trying to process a request.', + 'class' => 'InternalServerException', + ), + ), + ), + 'UpdateMLModel' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'UpdateMLModelOutput', + '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' => 'AmazonML_20141212.UpdateMLModel', + ), + 'MLModelId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 64, + ), + 'MLModelName' => array( + 'type' => 'string', + 'location' => 'json', + 'maxLength' => 1024, + ), + 'ScoreThreshold' => array( + 'type' => 'numeric', + 'location' => 'json', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'An error on the client occurred. Typically, the cause is an invalid input value.', + 'class' => 'InvalidInputException', + ), + array( + 'reason' => 'A specified resource cannot be located.', + 'class' => 'ResourceNotFoundException', + ), + array( + 'reason' => 'An error on the server occurred when trying to process a request.', + 'class' => 'InternalServerException', + ), + ), + ), + ), + 'models' => array( + 'CreateBatchPredictionOutput' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'BatchPredictionId' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + ), + 'CreateDataSourceFromRDSOutput' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'DataSourceId' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + ), + 'CreateDataSourceFromRedshiftOutput' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'DataSourceId' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + ), + 'CreateDataSourceFromS3Output' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'DataSourceId' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + ), + 'CreateEvaluationOutput' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'EvaluationId' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + ), + 'CreateMLModelOutput' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'MLModelId' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + ), + 'CreateRealtimeEndpointOutput' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'MLModelId' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'RealtimeEndpointInfo' => array( + 'type' => 'object', + 'location' => 'json', + 'properties' => array( + 'PeakRequestsPerSecond' => array( + 'type' => 'numeric', + ), + 'CreatedAt' => array( + 'type' => 'string', + ), + 'EndpointUrl' => array( + 'type' => 'string', + ), + 'EndpointStatus' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + 'DeleteBatchPredictionOutput' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'BatchPredictionId' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + ), + 'DeleteDataSourceOutput' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'DataSourceId' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + ), + 'DeleteEvaluationOutput' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'EvaluationId' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + ), + 'DeleteMLModelOutput' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'MLModelId' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + ), + 'DeleteRealtimeEndpointOutput' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'MLModelId' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'RealtimeEndpointInfo' => array( + 'type' => 'object', + 'location' => 'json', + 'properties' => array( + 'PeakRequestsPerSecond' => array( + 'type' => 'numeric', + ), + 'CreatedAt' => array( + 'type' => 'string', + ), + 'EndpointUrl' => array( + 'type' => 'string', + ), + 'EndpointStatus' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + 'DescribeBatchPredictionsOutput' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'Results' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'BatchPrediction', + 'type' => 'object', + 'properties' => array( + 'BatchPredictionId' => array( + 'type' => 'string', + ), + 'MLModelId' => array( + 'type' => 'string', + ), + 'BatchPredictionDataSourceId' => array( + 'type' => 'string', + ), + 'InputDataLocationS3' => array( + 'type' => 'string', + ), + 'CreatedByIamUser' => array( + 'type' => 'string', + ), + 'CreatedAt' => array( + 'type' => 'string', + ), + 'LastUpdatedAt' => array( + 'type' => 'string', + ), + 'Name' => array( + 'type' => 'string', + ), + 'Status' => array( + 'type' => 'string', + ), + 'OutputUri' => array( + 'type' => 'string', + ), + 'Message' => array( + 'type' => 'string', + ), + ), + ), + ), + 'NextToken' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + ), + 'DescribeDataSourcesOutput' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'Results' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'DataSource', + 'type' => 'object', + 'properties' => array( + 'DataSourceId' => array( + 'type' => 'string', + ), + 'DataLocationS3' => array( + 'type' => 'string', + ), + 'DataRearrangement' => array( + 'type' => 'string', + ), + 'CreatedByIamUser' => array( + 'type' => 'string', + ), + 'CreatedAt' => array( + 'type' => 'string', + ), + 'LastUpdatedAt' => array( + 'type' => 'string', + ), + 'DataSizeInBytes' => array( + 'type' => 'numeric', + ), + 'NumberOfFiles' => array( + 'type' => 'numeric', + ), + 'Name' => array( + 'type' => 'string', + ), + 'Status' => array( + 'type' => 'string', + ), + 'Message' => array( + 'type' => 'string', + ), + 'RedshiftMetadata' => array( + 'type' => 'object', + 'properties' => array( + 'RedshiftDatabase' => array( + 'type' => 'object', + 'properties' => array( + 'DatabaseName' => array( + 'type' => 'string', + ), + 'ClusterIdentifier' => array( + 'type' => 'string', + ), + ), + ), + 'DatabaseUserName' => array( + 'type' => 'string', + ), + 'SelectSqlQuery' => array( + 'type' => 'string', + ), + ), + ), + 'RDSMetadata' => array( + 'type' => 'object', + 'properties' => array( + 'Database' => array( + 'type' => 'object', + 'properties' => array( + 'InstanceIdentifier' => array( + 'type' => 'string', + ), + 'DatabaseName' => array( + 'type' => 'string', + ), + ), + ), + 'DatabaseUserName' => array( + 'type' => 'string', + ), + 'SelectSqlQuery' => array( + 'type' => 'string', + ), + 'ResourceRole' => array( + 'type' => 'string', + ), + 'ServiceRole' => array( + 'type' => 'string', + ), + 'DataPipelineId' => array( + 'type' => 'string', + ), + ), + ), + 'RoleARN' => array( + 'type' => 'string', + ), + 'ComputeStatistics' => array( + 'type' => 'boolean', + ), + ), + ), + ), + 'NextToken' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + ), + 'DescribeEvaluationsOutput' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'Results' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'Evaluation', + 'type' => 'object', + 'properties' => array( + 'EvaluationId' => array( + 'type' => 'string', + ), + 'MLModelId' => array( + 'type' => 'string', + ), + 'EvaluationDataSourceId' => array( + 'type' => 'string', + ), + 'InputDataLocationS3' => array( + 'type' => 'string', + ), + 'CreatedByIamUser' => array( + 'type' => 'string', + ), + 'CreatedAt' => array( + 'type' => 'string', + ), + 'LastUpdatedAt' => array( + 'type' => 'string', + ), + 'Name' => array( + 'type' => 'string', + ), + 'Status' => array( + 'type' => 'string', + ), + 'PerformanceMetrics' => array( + 'type' => 'object', + 'properties' => array( + 'Properties' => array( + 'type' => 'object', + 'additionalProperties' => array( + 'type' => 'string', + ), + ), + ), + ), + 'Message' => array( + 'type' => 'string', + ), + ), + ), + ), + 'NextToken' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + ), + 'DescribeMLModelsOutput' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'Results' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'MLModel', + 'type' => 'object', + 'properties' => array( + 'MLModelId' => array( + 'type' => 'string', + ), + 'TrainingDataSourceId' => array( + 'type' => 'string', + ), + 'CreatedByIamUser' => array( + 'type' => 'string', + ), + 'CreatedAt' => array( + 'type' => 'string', + ), + 'LastUpdatedAt' => array( + 'type' => 'string', + ), + 'Name' => array( + 'type' => 'string', + ), + 'Status' => array( + 'type' => 'string', + ), + 'SizeInBytes' => array( + 'type' => 'numeric', + ), + 'EndpointInfo' => array( + 'type' => 'object', + 'properties' => array( + 'PeakRequestsPerSecond' => array( + 'type' => 'numeric', + ), + 'CreatedAt' => array( + 'type' => 'string', + ), + 'EndpointUrl' => array( + 'type' => 'string', + ), + 'EndpointStatus' => array( + 'type' => 'string', + ), + ), + ), + 'TrainingParameters' => array( + 'type' => 'object', + 'additionalProperties' => array( + 'type' => 'string', + ), + ), + 'InputDataLocationS3' => array( + 'type' => 'string', + ), + 'Algorithm' => array( + 'type' => 'string', + ), + 'MLModelType' => array( + 'type' => 'string', + ), + 'ScoreThreshold' => array( + 'type' => 'numeric', + ), + 'ScoreThresholdLastUpdatedAt' => array( + 'type' => 'string', + ), + 'Message' => array( + 'type' => 'string', + ), + ), + ), + ), + 'NextToken' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + ), + 'GetBatchPredictionOutput' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'BatchPredictionId' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'MLModelId' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'BatchPredictionDataSourceId' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'InputDataLocationS3' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'CreatedByIamUser' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'CreatedAt' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'LastUpdatedAt' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'Name' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'Status' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'OutputUri' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'LogUri' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'Message' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + ), + 'GetDataSourceOutput' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'DataSourceId' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'DataLocationS3' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'DataRearrangement' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'CreatedByIamUser' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'CreatedAt' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'LastUpdatedAt' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'DataSizeInBytes' => array( + 'type' => 'numeric', + 'location' => 'json', + ), + 'NumberOfFiles' => array( + 'type' => 'numeric', + 'location' => 'json', + ), + 'Name' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'Status' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'LogUri' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'Message' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'RedshiftMetadata' => array( + 'type' => 'object', + 'location' => 'json', + 'properties' => array( + 'RedshiftDatabase' => array( + 'type' => 'object', + 'properties' => array( + 'DatabaseName' => array( + 'type' => 'string', + ), + 'ClusterIdentifier' => array( + 'type' => 'string', + ), + ), + ), + 'DatabaseUserName' => array( + 'type' => 'string', + ), + 'SelectSqlQuery' => array( + 'type' => 'string', + ), + ), + ), + 'RDSMetadata' => array( + 'type' => 'object', + 'location' => 'json', + 'properties' => array( + 'Database' => array( + 'type' => 'object', + 'properties' => array( + 'InstanceIdentifier' => array( + 'type' => 'string', + ), + 'DatabaseName' => array( + 'type' => 'string', + ), + ), + ), + 'DatabaseUserName' => array( + 'type' => 'string', + ), + 'SelectSqlQuery' => array( + 'type' => 'string', + ), + 'ResourceRole' => array( + 'type' => 'string', + ), + 'ServiceRole' => array( + 'type' => 'string', + ), + 'DataPipelineId' => array( + 'type' => 'string', + ), + ), + ), + 'RoleARN' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'ComputeStatistics' => array( + 'type' => 'boolean', + 'location' => 'json', + ), + 'DataSourceSchema' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + ), + 'GetEvaluationOutput' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'EvaluationId' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'MLModelId' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'EvaluationDataSourceId' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'InputDataLocationS3' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'CreatedByIamUser' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'CreatedAt' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'LastUpdatedAt' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'Name' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'Status' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'PerformanceMetrics' => array( + 'type' => 'object', + 'location' => 'json', + 'properties' => array( + 'Properties' => array( + 'type' => 'object', + 'additionalProperties' => array( + 'type' => 'string', + ), + ), + ), + ), + 'LogUri' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'Message' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + ), + 'GetMLModelOutput' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'MLModelId' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'TrainingDataSourceId' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'CreatedByIamUser' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'CreatedAt' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'LastUpdatedAt' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'Name' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'Status' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'SizeInBytes' => array( + 'type' => 'numeric', + 'location' => 'json', + ), + 'EndpointInfo' => array( + 'type' => 'object', + 'location' => 'json', + 'properties' => array( + 'PeakRequestsPerSecond' => array( + 'type' => 'numeric', + ), + 'CreatedAt' => array( + 'type' => 'string', + ), + 'EndpointUrl' => array( + 'type' => 'string', + ), + 'EndpointStatus' => array( + 'type' => 'string', + ), + ), + ), + 'TrainingParameters' => array( + 'type' => 'object', + 'location' => 'json', + 'additionalProperties' => array( + 'type' => 'string', + ), + ), + 'InputDataLocationS3' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'MLModelType' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'ScoreThreshold' => array( + 'type' => 'numeric', + 'location' => 'json', + ), + 'ScoreThresholdLastUpdatedAt' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'LogUri' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'Message' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'Recipe' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'Schema' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + ), + 'PredictOutput' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'Prediction' => array( + 'type' => 'object', + 'location' => 'json', + 'properties' => array( + 'predictedLabel' => array( + 'type' => 'string', + ), + 'predictedValue' => array( + 'type' => 'numeric', + ), + 'predictedScores' => array( + 'type' => 'object', + 'additionalProperties' => array( + 'type' => 'numeric', + ), + ), + 'details' => array( + 'type' => 'object', + 'additionalProperties' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + 'UpdateBatchPredictionOutput' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'BatchPredictionId' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + ), + 'UpdateDataSourceOutput' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'DataSourceId' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + ), + 'UpdateEvaluationOutput' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'EvaluationId' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + ), + 'UpdateMLModelOutput' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'MLModelId' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + ), + ), + 'iterators' => array( + 'DescribeBatchPredictions' => array( + 'limit_key' => 'Limit', + 'output_token' => 'NextToken', + 'input_token' => 'NextToken', + 'result_key' => 'Results', + ), + 'DescribeDataSources' => array( + 'limit_key' => 'Limit', + 'output_token' => 'NextToken', + 'input_token' => 'NextToken', + 'result_key' => 'Results', + ), + 'DescribeEvaluations' => array( + 'limit_key' => 'Limit', + 'output_token' => 'NextToken', + 'input_token' => 'NextToken', + 'result_key' => 'Results', + ), + 'DescribeMLModels' => array( + 'limit_key' => 'Limit', + 'output_token' => 'NextToken', + 'input_token' => 'NextToken', + 'result_key' => 'Results', + ), + ), +); diff --git a/inc/aws-sdk/Aws/OpsWorks/OpsWorksClient.php b/inc/aws-sdk/Aws/OpsWorks/OpsWorksClient.php index ed14fd6..ecb727d 100755 --- a/inc/aws-sdk/Aws/OpsWorks/OpsWorksClient.php +++ b/inc/aws-sdk/Aws/OpsWorks/OpsWorksClient.php @@ -27,6 +27,7 @@ use Guzzle\Service\Resource\ResourceIteratorInterface; /** * Client to interact with AWS OpsWorks * + * @method Model assignInstance(array $args = array()) {@command OpsWorks AssignInstance} * @method Model assignVolume(array $args = array()) {@command OpsWorks AssignVolume} * @method Model associateElasticIp(array $args = array()) {@command OpsWorks AssociateElasticIp} * @method Model attachElasticLoadBalancer(array $args = array()) {@command OpsWorks AttachElasticLoadBalancer} @@ -43,6 +44,8 @@ use Guzzle\Service\Resource\ResourceIteratorInterface; * @method Model deleteStack(array $args = array()) {@command OpsWorks DeleteStack} * @method Model deleteUserProfile(array $args = array()) {@command OpsWorks DeleteUserProfile} * @method Model deregisterElasticIp(array $args = array()) {@command OpsWorks DeregisterElasticIp} + * @method Model deregisterInstance(array $args = array()) {@command OpsWorks DeregisterInstance} + * @method Model deregisterRdsDbInstance(array $args = array()) {@command OpsWorks DeregisterRdsDbInstance} * @method Model deregisterVolume(array $args = array()) {@command OpsWorks DeregisterVolume} * @method Model describeApps(array $args = array()) {@command OpsWorks DescribeApps} * @method Model describeCommands(array $args = array()) {@command OpsWorks DescribeCommands} @@ -52,9 +55,13 @@ use Guzzle\Service\Resource\ResourceIteratorInterface; * @method Model describeInstances(array $args = array()) {@command OpsWorks DescribeInstances} * @method Model describeLayers(array $args = array()) {@command OpsWorks DescribeLayers} * @method Model describeLoadBasedAutoScaling(array $args = array()) {@command OpsWorks DescribeLoadBasedAutoScaling} + * @method Model describeMyUserProfile(array $args = array()) {@command OpsWorks DescribeMyUserProfile} * @method Model describePermissions(array $args = array()) {@command OpsWorks DescribePermissions} * @method Model describeRaidArrays(array $args = array()) {@command OpsWorks DescribeRaidArrays} + * @method Model describeRdsDbInstances(array $args = array()) {@command OpsWorks DescribeRdsDbInstances} * @method Model describeServiceErrors(array $args = array()) {@command OpsWorks DescribeServiceErrors} + * @method Model describeStackProvisioningParameters(array $args = array()) {@command OpsWorks DescribeStackProvisioningParameters} + * @method Model describeStackSummary(array $args = array()) {@command OpsWorks DescribeStackSummary} * @method Model describeStacks(array $args = array()) {@command OpsWorks DescribeStacks} * @method Model describeTimeBasedAutoScaling(array $args = array()) {@command OpsWorks DescribeTimeBasedAutoScaling} * @method Model describeUserProfiles(array $args = array()) {@command OpsWorks DescribeUserProfiles} @@ -64,6 +71,8 @@ use Guzzle\Service\Resource\ResourceIteratorInterface; * @method Model getHostnameSuggestion(array $args = array()) {@command OpsWorks GetHostnameSuggestion} * @method Model rebootInstance(array $args = array()) {@command OpsWorks RebootInstance} * @method Model registerElasticIp(array $args = array()) {@command OpsWorks RegisterElasticIp} + * @method Model registerInstance(array $args = array()) {@command OpsWorks RegisterInstance} + * @method Model registerRdsDbInstance(array $args = array()) {@command OpsWorks RegisterRdsDbInstance} * @method Model registerVolume(array $args = array()) {@command OpsWorks RegisterVolume} * @method Model setLoadBasedAutoScaling(array $args = array()) {@command OpsWorks SetLoadBasedAutoScaling} * @method Model setPermission(array $args = array()) {@command OpsWorks SetPermission} @@ -72,11 +81,14 @@ use Guzzle\Service\Resource\ResourceIteratorInterface; * @method Model startStack(array $args = array()) {@command OpsWorks StartStack} * @method Model stopInstance(array $args = array()) {@command OpsWorks StopInstance} * @method Model stopStack(array $args = array()) {@command OpsWorks StopStack} + * @method Model unassignInstance(array $args = array()) {@command OpsWorks UnassignInstance} * @method Model unassignVolume(array $args = array()) {@command OpsWorks UnassignVolume} * @method Model updateApp(array $args = array()) {@command OpsWorks UpdateApp} * @method Model updateElasticIp(array $args = array()) {@command OpsWorks UpdateElasticIp} * @method Model updateInstance(array $args = array()) {@command OpsWorks UpdateInstance} * @method Model updateLayer(array $args = array()) {@command OpsWorks UpdateLayer} + * @method Model updateMyUserProfile(array $args = array()) {@command OpsWorks UpdateMyUserProfile} + * @method Model updateRdsDbInstance(array $args = array()) {@command OpsWorks UpdateRdsDbInstance} * @method Model updateStack(array $args = array()) {@command OpsWorks UpdateStack} * @method Model updateUserProfile(array $args = array()) {@command OpsWorks UpdateUserProfile} * @method Model updateVolume(array $args = array()) {@command OpsWorks UpdateVolume} @@ -88,6 +100,7 @@ use Guzzle\Service\Resource\ResourceIteratorInterface; * @method ResourceIteratorInterface getDescribeInstancesIterator(array $args = array()) The input array uses the parameters of the DescribeInstances operation * @method ResourceIteratorInterface getDescribeLayersIterator(array $args = array()) The input array uses the parameters of the DescribeLayers operation * @method ResourceIteratorInterface getDescribeLoadBasedAutoScalingIterator(array $args = array()) The input array uses the parameters of the DescribeLoadBasedAutoScaling operation + * @method ResourceIteratorInterface getDescribePermissionsIterator(array $args = array()) The input array uses the parameters of the DescribePermissions operation * @method ResourceIteratorInterface getDescribeRaidArraysIterator(array $args = array()) The input array uses the parameters of the DescribeRaidArrays operation * @method ResourceIteratorInterface getDescribeServiceErrorsIterator(array $args = array()) The input array uses the parameters of the DescribeServiceErrors operation * @method ResourceIteratorInterface getDescribeStacksIterator(array $args = array()) The input array uses the parameters of the DescribeStacks operation @@ -95,8 +108,8 @@ use Guzzle\Service\Resource\ResourceIteratorInterface; * @method ResourceIteratorInterface getDescribeUserProfilesIterator(array $args = array()) The input array uses the parameters of the DescribeUserProfiles operation * @method ResourceIteratorInterface getDescribeVolumesIterator(array $args = array()) The input array uses the parameters of the DescribeVolumes operation * - * @link http://docs.aws.amazon.com/aws-sdk-php/guide/latest/service-opsworks.html User guide - * @link http://docs.aws.amazon.com/aws-sdk-php/latest/class-Aws.OpsWorks.OpsWorksClient.html API docs + * @link http://docs.aws.amazon.com/aws-sdk-php/v2/guide/service-opsworks.html User guide + * @link http://docs.aws.amazon.com/aws-sdk-php/v2/api/class-Aws.OpsWorks.OpsWorksClient.html API docs */ class OpsWorksClient extends AbstractClient { @@ -108,7 +121,7 @@ class OpsWorksClient extends AbstractClient * @param array|Collection $config Client configuration data * * @return self - * @see \Aws\Common\Client\DefaultClient for a list of available configuration options + * @link http://docs.aws.amazon.com/aws-sdk-php/v2/guide/configuration.html#client-configuration-options */ public static function factory($config = array()) { diff --git a/inc/aws-sdk/Aws/OpsWorks/Resources/opsworks-2013-02-18.php b/inc/aws-sdk/Aws/OpsWorks/Resources/opsworks-2013-02-18.php index 011adf8..a8ed96c 100755 --- a/inc/aws-sdk/Aws/OpsWorks/Resources/opsworks-2013-02-18.php +++ b/inc/aws-sdk/Aws/OpsWorks/Resources/opsworks-2013-02-18.php @@ -31,6 +31,53 @@ return array ( ), ), 'operations' => array( + 'AssignInstance' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'EmptyOutput', + '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' => 'OpsWorks_20130218.AssignInstance', + ), + 'InstanceId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + ), + 'LayerIds' => array( + 'required' => true, + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'String', + 'type' => 'string', + ), + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'Indicates that a request was invalid.', + 'class' => 'ValidationException', + ), + array( + 'reason' => 'Indicates that a resource was not found.', + 'class' => 'ResourceNotFoundException', + ), + ), + ), 'AssignVolume' => array( 'httpMethod' => 'POST', 'uri' => '/', @@ -247,23 +294,35 @@ return array ( ), ), ), + 'ChefConfiguration' => array( + 'type' => 'object', + 'location' => 'json', + 'properties' => array( + 'ManageBerkshelf' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + ), + 'BerkshelfVersion' => array( + 'type' => 'string', + ), + ), + ), 'UseCustomCookbooks' => array( 'type' => 'boolean', 'format' => 'boolean-string', 'location' => 'json', ), + 'UseOpsworksSecurityGroups' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'json', + ), 'CustomCookbooksSource' => array( 'type' => 'object', 'location' => 'json', 'properties' => array( 'Type' => array( 'type' => 'string', - 'enum' => array( - 'git', - 'svn', - 'archive', - 's3', - ), ), 'Url' => array( 'type' => 'string', @@ -302,10 +361,6 @@ return array ( 'DefaultRootDeviceType' => array( 'type' => 'string', 'location' => 'json', - 'enum' => array( - 'ebs', - 'instance-store', - ), ), ), 'errorResponses' => array( @@ -358,17 +413,29 @@ return array ( 'type' => 'string', 'location' => 'json', ), + 'DataSources' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'DataSource', + 'type' => 'object', + 'properties' => array( + 'Type' => array( + 'type' => 'string', + ), + 'Arn' => array( + 'type' => 'string', + ), + 'DatabaseName' => array( + 'type' => 'string', + ), + ), + ), + ), 'Type' => array( 'required' => true, 'type' => 'string', 'location' => 'json', - 'enum' => array( - 'rails', - 'php', - 'nodejs', - 'static', - 'other', - ), ), 'AppSource' => array( 'type' => 'object', @@ -376,12 +443,6 @@ return array ( 'properties' => array( 'Type' => array( 'type' => 'string', - 'enum' => array( - 'git', - 'svn', - 'archive', - 's3', - ), ), 'Url' => array( 'type' => 'string', @@ -440,6 +501,28 @@ return array ( ), ), ), + 'Environment' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'EnvironmentVariable', + 'type' => 'object', + 'properties' => array( + 'Key' => array( + 'required' => true, + 'type' => 'string', + ), + 'Value' => array( + 'required' => true, + 'type' => 'string', + ), + 'Secure' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + ), + ), + ), + ), ), 'errorResponses' => array( array( @@ -498,18 +581,6 @@ return array ( 'Name' => array( 'required' => true, 'type' => 'string', - 'enum' => array( - 'install_dependencies', - 'update_dependencies', - 'update_custom_cookbooks', - 'execute_recipes', - 'deploy', - 'rollback', - 'start', - 'stop', - 'restart', - 'undeploy', - ), ), 'Args' => array( 'type' => 'object', @@ -589,10 +660,6 @@ return array ( 'AutoScalingType' => array( 'type' => 'string', 'location' => 'json', - 'enum' => array( - 'load', - 'timer', - ), ), 'Hostname' => array( 'type' => 'string', @@ -614,6 +681,10 @@ return array ( 'type' => 'string', 'location' => 'json', ), + 'VirtualizationType' => array( + 'type' => 'string', + 'location' => 'json', + ), 'SubnetId' => array( 'type' => 'string', 'location' => 'json', @@ -621,17 +692,49 @@ return array ( 'Architecture' => array( 'type' => 'string', 'location' => 'json', - 'enum' => array( - 'x86_64', - 'i386', - ), ), 'RootDeviceType' => array( 'type' => 'string', 'location' => 'json', - 'enum' => array( - 'ebs', - 'instance-store', + ), + 'BlockDeviceMappings' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'BlockDeviceMapping', + 'type' => 'object', + 'properties' => array( + 'DeviceName' => array( + 'type' => 'string', + ), + 'NoDevice' => array( + 'type' => 'string', + ), + 'VirtualName' => array( + 'type' => 'string', + ), + 'Ebs' => array( + 'type' => 'object', + 'properties' => array( + 'SnapshotId' => array( + 'type' => 'string', + ), + 'Iops' => array( + 'type' => 'numeric', + ), + 'VolumeSize' => array( + 'type' => 'numeric', + ), + 'VolumeType' => array( + 'type' => 'string', + ), + 'DeleteOnTermination' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + ), + ), + ), + ), ), ), 'InstallUpdatesOnBoot' => array( @@ -639,6 +742,11 @@ return array ( 'format' => 'boolean-string', 'location' => 'json', ), + 'EbsOptimized' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'json', + ), ), 'errorResponses' => array( array( @@ -681,17 +789,6 @@ return array ( 'required' => true, 'type' => 'string', 'location' => 'json', - 'enum' => array( - 'lb', - 'web', - 'php-app', - 'rails-app', - 'nodejs-app', - 'memcached', - 'db-master', - 'monitoring-master', - 'custom', - ), ), 'Name' => array( 'required' => true, @@ -755,6 +852,12 @@ return array ( 'required' => true, 'type' => 'numeric', ), + 'VolumeType' => array( + 'type' => 'string', + ), + 'Iops' => array( + 'type' => 'numeric', + ), ), ), ), @@ -819,6 +922,29 @@ return array ( 'format' => 'boolean-string', 'location' => 'json', ), + 'UseEbsOptimizedInstances' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'json', + ), + 'LifecycleEventConfiguration' => array( + 'type' => 'object', + 'location' => 'json', + 'properties' => array( + 'Shutdown' => array( + 'type' => 'object', + 'properties' => array( + 'ExecutionTimeout' => array( + 'type' => 'numeric', + ), + 'DelayUntilElbConnectionsDrained' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + ), + ), + ), + ), + ), ), 'errorResponses' => array( array( @@ -918,23 +1044,35 @@ return array ( ), ), ), + 'ChefConfiguration' => array( + 'type' => 'object', + 'location' => 'json', + 'properties' => array( + 'ManageBerkshelf' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + ), + 'BerkshelfVersion' => array( + 'type' => 'string', + ), + ), + ), 'UseCustomCookbooks' => array( 'type' => 'boolean', 'format' => 'boolean-string', 'location' => 'json', ), + 'UseOpsworksSecurityGroups' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'json', + ), 'CustomCookbooksSource' => array( 'type' => 'object', 'location' => 'json', 'properties' => array( 'Type' => array( 'type' => 'string', - 'enum' => array( - 'git', - 'svn', - 'archive', - 's3', - ), ), 'Url' => array( 'type' => 'string', @@ -960,10 +1098,6 @@ return array ( 'DefaultRootDeviceType' => array( 'type' => 'string', 'location' => 'json', - 'enum' => array( - 'ebs', - 'instance-store', - ), ), ), 'errorResponses' => array( @@ -1007,6 +1141,11 @@ return array ( 'type' => 'string', 'location' => 'json', ), + 'AllowSelfManagement' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'json', + ), ), 'errorResponses' => array( array( @@ -1253,6 +1392,82 @@ return array ( ), ), ), + 'DeregisterInstance' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'EmptyOutput', + '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' => 'OpsWorks_20130218.DeregisterInstance', + ), + 'InstanceId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'Indicates that a request was invalid.', + 'class' => 'ValidationException', + ), + array( + 'reason' => 'Indicates that a resource was not found.', + 'class' => 'ResourceNotFoundException', + ), + ), + ), + 'DeregisterRdsDbInstance' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'EmptyOutput', + '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' => 'OpsWorks_20130218.DeregisterRdsDbInstance', + ), + 'RdsDbInstanceArn' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'Indicates that a request was invalid.', + 'class' => 'ValidationException', + ), + array( + 'reason' => 'Indicates that a resource was not found.', + 'class' => 'ResourceNotFoundException', + ), + ), + ), 'DeregisterVolume' => array( 'httpMethod' => 'POST', 'uri' => '/', @@ -1664,11 +1879,11 @@ return array ( ), ), ), - 'DescribePermissions' => array( + 'DescribeMyUserProfile' => array( 'httpMethod' => 'POST', 'uri' => '/', 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'DescribePermissionsResult', + 'responseClass' => 'DescribeMyUserProfileResult', 'responseType' => 'model', 'parameters' => array( 'Content-Type' => array( @@ -1683,25 +1898,46 @@ return array ( 'X-Amz-Target' => array( 'static' => true, 'location' => 'header', - 'default' => 'OpsWorks_20130218.DescribePermissions', - ), - 'IamUserArn' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - ), - 'StackId' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', + 'default' => 'OpsWorks_20130218.DescribeMyUserProfile', ), ), - 'errorResponses' => array( - array( - 'reason' => 'Indicates that a request was invalid.', - 'class' => 'ValidationException', - ), - array( + ), + 'DescribePermissions' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'DescribePermissionsResult', + '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' => 'OpsWorks_20130218.DescribePermissions', + ), + 'IamUserArn' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'StackId' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'Indicates that a request was invalid.', + 'class' => 'ValidationException', + ), + array( 'reason' => 'Indicates that a resource was not found.', 'class' => 'ResourceNotFoundException', ), @@ -1732,6 +1968,10 @@ return array ( 'type' => 'string', 'location' => 'json', ), + 'StackId' => array( + 'type' => 'string', + 'location' => 'json', + ), 'RaidArrayIds' => array( 'type' => 'array', 'location' => 'json', @@ -1752,6 +1992,52 @@ return array ( ), ), ), + 'DescribeRdsDbInstances' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'DescribeRdsDbInstancesResult', + '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' => 'OpsWorks_20130218.DescribeRdsDbInstances', + ), + 'StackId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + ), + 'RdsDbInstanceArns' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'String', + 'type' => 'string', + ), + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'Indicates that a request was invalid.', + 'class' => 'ValidationException', + ), + array( + 'reason' => 'Indicates that a resource was not found.', + 'class' => 'ResourceNotFoundException', + ), + ), + ), 'DescribeServiceErrors' => array( 'httpMethod' => 'POST', 'uri' => '/', @@ -1801,6 +2087,82 @@ return array ( ), ), ), + 'DescribeStackProvisioningParameters' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'DescribeStackProvisioningParametersResult', + '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' => 'OpsWorks_20130218.DescribeStackProvisioningParameters', + ), + 'StackId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'Indicates that a request was invalid.', + 'class' => 'ValidationException', + ), + array( + 'reason' => 'Indicates that a resource was not found.', + 'class' => 'ResourceNotFoundException', + ), + ), + ), + 'DescribeStackSummary' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'DescribeStackSummaryResult', + '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' => 'OpsWorks_20130218.DescribeStackSummary', + ), + 'StackId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'Indicates that a request was invalid.', + 'class' => 'ValidationException', + ), + array( + 'reason' => 'Indicates that a resource was not found.', + 'class' => 'ResourceNotFoundException', + ), + ), + ), 'DescribeStacks' => array( 'httpMethod' => 'POST', 'uri' => '/', @@ -1906,7 +2268,6 @@ return array ( 'default' => 'OpsWorks_20130218.DescribeUserProfiles', ), 'IamUserArns' => array( - 'required' => true, 'type' => 'array', 'location' => 'json', 'items' => array( @@ -2088,6 +2449,10 @@ return array ( 'reason' => 'Indicates that a request was invalid.', 'class' => 'ValidationException', ), + array( + 'reason' => 'Indicates that a resource was not found.', + 'class' => 'ResourceNotFoundException', + ), ), ), 'RebootInstance' => array( @@ -2171,6 +2536,129 @@ return array ( ), ), ), + 'RegisterInstance' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'RegisterInstanceResult', + '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' => 'OpsWorks_20130218.RegisterInstance', + ), + 'StackId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + ), + 'Hostname' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'PublicIp' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'PrivateIp' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'RsaPublicKey' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'RsaPublicKeyFingerprint' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'InstanceIdentity' => array( + 'type' => 'object', + 'location' => 'json', + 'properties' => array( + 'Document' => array( + 'type' => 'string', + ), + 'Signature' => array( + 'type' => 'string', + ), + ), + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'Indicates that a request was invalid.', + 'class' => 'ValidationException', + ), + array( + 'reason' => 'Indicates that a resource was not found.', + 'class' => 'ResourceNotFoundException', + ), + ), + ), + 'RegisterRdsDbInstance' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'EmptyOutput', + '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' => 'OpsWorks_20130218.RegisterRdsDbInstance', + ), + 'StackId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + ), + 'RdsDbInstanceArn' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + ), + 'DbUser' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + ), + 'DbPassword' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'Indicates that a request was invalid.', + 'class' => 'ValidationException', + ), + array( + 'reason' => 'Indicates that a resource was not found.', + 'class' => 'ResourceNotFoundException', + ), + ), + ), 'RegisterVolume' => array( 'httpMethod' => 'POST', 'uri' => '/', @@ -2353,6 +2841,10 @@ return array ( 'format' => 'boolean-string', 'location' => 'json', ), + 'Level' => array( + 'type' => 'string', + 'location' => 'json', + ), ), 'errorResponses' => array( array( @@ -2624,6 +3116,44 @@ return array ( ), ), ), + 'UnassignInstance' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'EmptyOutput', + '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' => 'OpsWorks_20130218.UnassignInstance', + ), + 'InstanceId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'Indicates that a request was invalid.', + 'class' => 'ValidationException', + ), + array( + 'reason' => 'Indicates that a resource was not found.', + 'class' => 'ResourceNotFoundException', + ), + ), + ), 'UnassignVolume' => array( 'httpMethod' => 'POST', 'uri' => '/', @@ -2696,16 +3226,28 @@ return array ( 'type' => 'string', 'location' => 'json', ), + 'DataSources' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'DataSource', + 'type' => 'object', + 'properties' => array( + 'Type' => array( + 'type' => 'string', + ), + 'Arn' => array( + 'type' => 'string', + ), + 'DatabaseName' => array( + 'type' => 'string', + ), + ), + ), + ), 'Type' => array( 'type' => 'string', 'location' => 'json', - 'enum' => array( - 'rails', - 'php', - 'nodejs', - 'static', - 'other', - ), ), 'AppSource' => array( 'type' => 'object', @@ -2713,12 +3255,6 @@ return array ( 'properties' => array( 'Type' => array( 'type' => 'string', - 'enum' => array( - 'git', - 'svn', - 'archive', - 's3', - ), ), 'Url' => array( 'type' => 'string', @@ -2777,6 +3313,28 @@ return array ( ), ), ), + 'Environment' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'EnvironmentVariable', + 'type' => 'object', + 'properties' => array( + 'Key' => array( + 'required' => true, + 'type' => 'string', + ), + 'Value' => array( + 'required' => true, + 'type' => 'string', + ), + 'Secure' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + ), + ), + ), + ), ), 'errorResponses' => array( array( @@ -2872,10 +3430,6 @@ return array ( 'AutoScalingType' => array( 'type' => 'string', 'location' => 'json', - 'enum' => array( - 'load', - 'timer', - ), ), 'Hostname' => array( 'type' => 'string', @@ -2896,16 +3450,17 @@ return array ( 'Architecture' => array( 'type' => 'string', 'location' => 'json', - 'enum' => array( - 'x86_64', - 'i386', - ), ), 'InstallUpdatesOnBoot' => array( 'type' => 'boolean', 'format' => 'boolean-string', 'location' => 'json', ), + 'EbsOptimized' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'json', + ), ), 'errorResponses' => array( array( @@ -3004,6 +3559,12 @@ return array ( 'required' => true, 'type' => 'numeric', ), + 'VolumeType' => array( + 'type' => 'string', + ), + 'Iops' => array( + 'type' => 'numeric', + ), ), ), ), @@ -3068,6 +3629,108 @@ return array ( 'format' => 'boolean-string', 'location' => 'json', ), + 'UseEbsOptimizedInstances' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'json', + ), + 'LifecycleEventConfiguration' => array( + 'type' => 'object', + 'location' => 'json', + 'properties' => array( + 'Shutdown' => array( + 'type' => 'object', + 'properties' => array( + 'ExecutionTimeout' => array( + 'type' => 'numeric', + ), + 'DelayUntilElbConnectionsDrained' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + ), + ), + ), + ), + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'Indicates that a request was invalid.', + 'class' => 'ValidationException', + ), + array( + 'reason' => 'Indicates that a resource was not found.', + 'class' => 'ResourceNotFoundException', + ), + ), + ), + 'UpdateMyUserProfile' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'EmptyOutput', + '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' => 'OpsWorks_20130218.UpdateMyUserProfile', + ), + 'SshPublicKey' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'Indicates that a request was invalid.', + 'class' => 'ValidationException', + ), + ), + ), + 'UpdateRdsDbInstance' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'EmptyOutput', + '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' => 'OpsWorks_20130218.UpdateRdsDbInstance', + ), + 'RdsDbInstanceArn' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + ), + 'DbUser' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'DbPassword' => array( + 'type' => 'string', + 'location' => 'json', + ), ), 'errorResponses' => array( array( @@ -3160,6 +3823,19 @@ return array ( ), ), ), + 'ChefConfiguration' => array( + 'type' => 'object', + 'location' => 'json', + 'properties' => array( + 'ManageBerkshelf' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + ), + 'BerkshelfVersion' => array( + 'type' => 'string', + ), + ), + ), 'UseCustomCookbooks' => array( 'type' => 'boolean', 'format' => 'boolean-string', @@ -3171,12 +3847,6 @@ return array ( 'properties' => array( 'Type' => array( 'type' => 'string', - 'enum' => array( - 'git', - 'svn', - 'archive', - 's3', - ), ), 'Url' => array( 'type' => 'string', @@ -3202,10 +3872,11 @@ return array ( 'DefaultRootDeviceType' => array( 'type' => 'string', 'location' => 'json', - 'enum' => array( - 'ebs', - 'instance-store', - ), + ), + 'UseOpsworksSecurityGroups' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'json', ), ), 'errorResponses' => array( @@ -3253,6 +3924,11 @@ return array ( 'type' => 'string', 'location' => 'json', ), + 'AllowSelfManagement' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'json', + ), ), 'errorResponses' => array( array( @@ -3413,6 +4089,24 @@ return array ( 'Description' => array( 'type' => 'string', ), + 'DataSources' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'DataSource', + 'type' => 'object', + 'properties' => array( + 'Type' => array( + 'type' => 'string', + ), + 'Arn' => array( + 'type' => 'string', + ), + 'DatabaseName' => array( + 'type' => 'string', + ), + ), + ), + ), 'Type' => array( 'type' => 'string', ), @@ -3472,6 +4166,24 @@ return array ( 'CreatedAt' => array( 'type' => 'string', ), + 'Environment' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'EnvironmentVariable', + 'type' => 'object', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + ), + 'Value' => array( + 'type' => 'string', + ), + 'Secure' => array( + 'type' => 'boolean', + ), + ), + ), + ), ), ), ), @@ -3697,6 +4409,9 @@ return array ( 'Ec2InstanceId' => array( 'type' => 'string', ), + 'VirtualizationType' => array( + 'type' => 'string', + ), 'Hostname' => array( 'type' => 'string', ), @@ -3780,9 +4495,73 @@ return array ( 'RootDeviceVolumeId' => array( 'type' => 'string', ), + 'BlockDeviceMappings' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'BlockDeviceMapping', + 'type' => 'object', + 'properties' => array( + 'DeviceName' => array( + 'type' => 'string', + ), + 'NoDevice' => array( + 'type' => 'string', + ), + 'VirtualName' => array( + 'type' => 'string', + ), + 'Ebs' => array( + 'type' => 'object', + 'properties' => array( + 'SnapshotId' => array( + 'type' => 'string', + ), + 'Iops' => array( + 'type' => 'numeric', + ), + 'VolumeSize' => array( + 'type' => 'numeric', + ), + 'VolumeType' => array( + 'type' => 'string', + ), + 'DeleteOnTermination' => array( + 'type' => 'boolean', + ), + ), + ), + ), + ), + ), 'InstallUpdatesOnBoot' => array( 'type' => 'boolean', ), + 'EbsOptimized' => array( + 'type' => 'boolean', + ), + 'ReportedAgentVersion' => array( + 'type' => 'string', + ), + 'ReportedOs' => array( + 'type' => 'object', + 'properties' => array( + 'Family' => array( + 'type' => 'string', + ), + 'Name' => array( + 'type' => 'string', + ), + 'Version' => array( + 'type' => 'string', + ), + ), + ), + 'InfrastructureClass' => array( + 'type' => 'string', + ), + 'RegisteredBy' => array( + 'type' => 'string', + ), ), ), ), @@ -3862,6 +4641,12 @@ return array ( 'Size' => array( 'type' => 'numeric', ), + 'VolumeType' => array( + 'type' => 'string', + ), + 'Iops' => array( + 'type' => 'numeric', + ), ), ), ), @@ -3960,6 +4745,25 @@ return array ( 'InstallUpdatesOnBoot' => array( 'type' => 'boolean', ), + 'UseEbsOptimizedInstances' => array( + 'type' => 'boolean', + ), + 'LifecycleEventConfiguration' => array( + 'type' => 'object', + 'properties' => array( + 'Shutdown' => array( + 'type' => 'object', + 'properties' => array( + 'ExecutionTimeout' => array( + 'type' => 'numeric', + ), + 'DelayUntilElbConnectionsDrained' => array( + 'type' => 'boolean', + ), + ), + ), + ), + ), ), ), ), @@ -4033,6 +4837,30 @@ return array ( ), ), ), + 'DescribeMyUserProfileResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'UserProfile' => array( + 'type' => 'object', + 'location' => 'json', + 'properties' => array( + 'IamUserArn' => array( + 'type' => 'string', + ), + 'Name' => array( + 'type' => 'string', + ), + 'SshUsername' => array( + 'type' => 'string', + ), + 'SshPublicKey' => array( + 'type' => 'string', + ), + ), + ), + ), + ), 'DescribePermissionsResult' => array( 'type' => 'object', 'additionalProperties' => true, @@ -4056,6 +4884,9 @@ return array ( 'AllowSudo' => array( 'type' => 'boolean', ), + 'Level' => array( + 'type' => 'string', + ), ), ), ), @@ -4102,6 +4933,58 @@ return array ( 'CreatedAt' => array( 'type' => 'string', ), + 'StackId' => array( + 'type' => 'string', + ), + 'VolumeType' => array( + 'type' => 'string', + ), + 'Iops' => array( + 'type' => 'numeric', + ), + ), + ), + ), + ), + ), + 'DescribeRdsDbInstancesResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'RdsDbInstances' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'RdsDbInstance', + 'type' => 'object', + 'properties' => array( + 'RdsDbInstanceArn' => array( + 'type' => 'string', + ), + 'DbInstanceIdentifier' => array( + 'type' => 'string', + ), + 'DbUser' => array( + 'type' => 'string', + ), + 'DbPassword' => array( + 'type' => 'string', + ), + 'Region' => array( + 'type' => 'string', + ), + 'Address' => array( + 'type' => 'string', + ), + 'Engine' => array( + 'type' => 'string', + ), + 'StackId' => array( + 'type' => 'string', + ), + 'MissingOnRds' => array( + 'type' => 'boolean', + ), ), ), ), @@ -4141,6 +5024,112 @@ return array ( ), ), ), + 'DescribeStackProvisioningParametersResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'AgentInstallerUrl' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'Parameters' => array( + 'type' => 'object', + 'location' => 'json', + 'additionalProperties' => array( + 'type' => 'string', + ), + ), + ), + ), + 'DescribeStackSummaryResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'StackSummary' => array( + 'type' => 'object', + 'location' => 'json', + 'properties' => array( + 'StackId' => array( + 'type' => 'string', + ), + 'Name' => array( + 'type' => 'string', + ), + 'Arn' => array( + 'type' => 'string', + ), + 'LayersCount' => array( + 'type' => 'numeric', + ), + 'AppsCount' => array( + 'type' => 'numeric', + ), + 'InstancesCount' => array( + 'type' => 'object', + 'properties' => array( + 'Assigning' => array( + 'type' => 'numeric', + ), + 'Booting' => array( + 'type' => 'numeric', + ), + 'ConnectionLost' => array( + 'type' => 'numeric', + ), + 'Deregistering' => array( + 'type' => 'numeric', + ), + 'Online' => array( + 'type' => 'numeric', + ), + 'Pending' => array( + 'type' => 'numeric', + ), + 'Rebooting' => array( + 'type' => 'numeric', + ), + 'Registered' => array( + 'type' => 'numeric', + ), + 'Registering' => array( + 'type' => 'numeric', + ), + 'Requested' => array( + 'type' => 'numeric', + ), + 'RunningSetup' => array( + 'type' => 'numeric', + ), + 'SetupFailed' => array( + 'type' => 'numeric', + ), + 'ShuttingDown' => array( + 'type' => 'numeric', + ), + 'StartFailed' => array( + 'type' => 'numeric', + ), + 'Stopped' => array( + 'type' => 'numeric', + ), + 'Stopping' => array( + 'type' => 'numeric', + ), + 'Terminated' => array( + 'type' => 'numeric', + ), + 'Terminating' => array( + 'type' => 'numeric', + ), + 'Unassigning' => array( + 'type' => 'numeric', + ), + ), + ), + ), + ), + ), + ), 'DescribeStacksResult' => array( 'type' => 'object', 'additionalProperties' => true, @@ -4158,6 +5147,9 @@ return array ( 'Name' => array( 'type' => 'string', ), + 'Arn' => array( + 'type' => 'string', + ), 'Region' => array( 'type' => 'string', ), @@ -4202,9 +5194,23 @@ return array ( ), ), ), + 'ChefConfiguration' => array( + 'type' => 'object', + 'properties' => array( + 'ManageBerkshelf' => array( + 'type' => 'boolean', + ), + 'BerkshelfVersion' => array( + 'type' => 'string', + ), + ), + ), 'UseCustomCookbooks' => array( 'type' => 'boolean', ), + 'UseOpsworksSecurityGroups' => array( + 'type' => 'boolean', + ), 'CustomCookbooksSource' => array( 'type' => 'object', 'properties' => array( @@ -4331,6 +5337,9 @@ return array ( 'SshPublicKey' => array( 'type' => 'string', ), + 'AllowSelfManagement' => array( + 'type' => 'boolean', + ), ), ), ), @@ -4380,6 +5389,12 @@ return array ( 'AvailabilityZone' => array( 'type' => 'string', ), + 'VolumeType' => array( + 'type' => 'string', + ), + 'Iops' => array( + 'type' => 'numeric', + ), ), ), ), @@ -4409,6 +5424,16 @@ return array ( ), ), ), + 'RegisterInstanceResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'InstanceId' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + ), 'RegisterVolumeResult' => array( 'type' => 'object', 'additionalProperties' => true, @@ -4421,49 +5446,50 @@ return array ( ), ), 'iterators' => array( - 'operations' => array( - 'DescribeApps' => array( - 'result_key' => 'Apps', - ), - 'DescribeCommands' => array( - 'result_key' => 'Commands', - ), - 'DescribeDeployments' => array( - 'result_key' => 'Deployments', - ), - 'DescribeElasticIps' => array( - 'result_key' => 'ElasticIps', - ), - 'DescribeElasticLoadBalancers' => array( - 'result_key' => 'ElasticLoadBalancers', - ), - 'DescribeInstances' => array( - 'result_key' => 'Instances', - ), - 'DescribeLayers' => array( - 'result_key' => 'Layers', - ), - 'DescribeLoadBasedAutoScaling' => array( - 'result_key' => 'LoadBasedAutoScalingConfigurations', - ), - 'DescribeRaidArrays' => array( - 'result_key' => 'RaidArrays', - ), - 'DescribeServiceErrors' => array( - 'result_key' => 'ServiceErrors', - ), - 'DescribeStacks' => array( - 'result_key' => 'Stacks', - ), - 'DescribeTimeBasedAutoScaling' => array( - 'result_key' => 'TimeBasedAutoScalingConfigurations', - ), - 'DescribeUserProfiles' => array( - 'result_key' => 'UserProfiles', - ), - 'DescribeVolumes' => array( - 'result_key' => 'Volumes', - ), + 'DescribeApps' => array( + 'result_key' => 'Apps', + ), + 'DescribeCommands' => array( + 'result_key' => 'Commands', + ), + 'DescribeDeployments' => array( + 'result_key' => 'Deployments', + ), + 'DescribeElasticIps' => array( + 'result_key' => 'ElasticIps', + ), + 'DescribeElasticLoadBalancers' => array( + 'result_key' => 'ElasticLoadBalancers', + ), + 'DescribeInstances' => array( + 'result_key' => 'Instances', + ), + 'DescribeLayers' => array( + 'result_key' => 'Layers', + ), + 'DescribeLoadBasedAutoScaling' => array( + 'result_key' => 'LoadBasedAutoScalingConfigurations', + ), + 'DescribePermissions' => array( + 'result_key' => 'Permissions', + ), + 'DescribeRaidArrays' => array( + 'result_key' => 'RaidArrays', + ), + 'DescribeServiceErrors' => array( + 'result_key' => 'ServiceErrors', + ), + 'DescribeStacks' => array( + 'result_key' => 'Stacks', + ), + 'DescribeTimeBasedAutoScaling' => array( + 'result_key' => 'TimeBasedAutoScalingConfigurations', + ), + 'DescribeUserProfiles' => array( + 'result_key' => 'UserProfiles', + ), + 'DescribeVolumes' => array( + 'result_key' => 'Volumes', ), ), ); diff --git a/inc/aws-sdk/Aws/Rds/Exception/DBSubnetGroupNotAllowedException.php b/inc/aws-sdk/Aws/Rds/Exception/DBSubnetGroupNotAllowedException.php new file mode 100644 index 0000000..faac703 --- /dev/null +++ b/inc/aws-sdk/Aws/Rds/Exception/DBSubnetGroupNotAllowedException.php @@ -0,0 +1,22 @@ + '2014-10-31', + 'endpointPrefix' => 'rds', + 'serviceFullName' => 'Amazon Relational Database Service', + 'serviceAbbreviation' => 'Amazon RDS', + 'serviceType' => 'query', + 'resultWrapped' => true, + 'signatureVersion' => 'v4', + 'namespace' => 'Rds', + 'regions' => array( + 'us-east-1' => array( + 'http' => false, + 'https' => true, + 'hostname' => 'rds.us-east-1.amazonaws.com', + ), + 'us-west-1' => array( + 'http' => false, + 'https' => true, + 'hostname' => 'rds.us-west-1.amazonaws.com', + ), + 'us-west-2' => array( + 'http' => false, + 'https' => true, + 'hostname' => 'rds.us-west-2.amazonaws.com', + ), + 'eu-west-1' => array( + 'http' => false, + 'https' => true, + 'hostname' => 'rds.eu-west-1.amazonaws.com', + ), + 'ap-northeast-1' => array( + 'http' => false, + 'https' => true, + 'hostname' => 'rds.ap-northeast-1.amazonaws.com', + ), + 'ap-southeast-1' => array( + 'http' => false, + 'https' => true, + 'hostname' => 'rds.ap-southeast-1.amazonaws.com', + ), + 'ap-southeast-2' => array( + 'http' => false, + 'https' => true, + 'hostname' => 'rds.ap-southeast-2.amazonaws.com', + ), + 'sa-east-1' => array( + 'http' => false, + 'https' => true, + 'hostname' => 'rds.sa-east-1.amazonaws.com', + ), + 'cn-north-1' => array( + 'http' => false, + 'https' => true, + 'hostname' => 'rds.cn-north-1.amazonaws.com.cn', + ), + 'us-gov-west-1' => array( + 'http' => false, + 'https' => true, + 'hostname' => 'rds.us-gov-west-1.amazonaws.com', + ), + ), + 'operations' => array( + 'AddSourceIdentifierToSubscription' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'EventSubscriptionWrapper', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'AddSourceIdentifierToSubscription', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2014-10-31', + ), + 'SubscriptionName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'SourceIdentifier' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The subscription name does not exist.', + 'class' => 'SubscriptionNotFoundException', + ), + array( + 'reason' => 'The requested source could not be found.', + 'class' => 'SourceNotFoundException', + ), + ), + ), + 'AddTagsToResource' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'EmptyOutput', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'AddTagsToResource', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2014-10-31', + ), + 'ResourceName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'Tags' => array( + 'required' => true, + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'Tags.member', + 'items' => array( + 'name' => 'Tag', + 'type' => 'object', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + ), + 'Value' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'DBInstanceIdentifier does not refer to an existing DB instance.', + 'class' => 'DBInstanceNotFoundException', + ), + array( + 'reason' => 'DBSnapshotIdentifier does not refer to an existing DB snapshot.', + 'class' => 'DBSnapshotNotFoundException', + ), + ), + ), + 'ApplyPendingMaintenanceAction' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'ResourcePendingMaintenanceActionsWrapper', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'ApplyPendingMaintenanceAction', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2014-10-31', + ), + 'ResourceIdentifier' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'ApplyAction' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'OptInType' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The specified resource ID was not found.', + 'class' => 'ResourceNotFoundException', + ), + ), + ), + 'AuthorizeDBSecurityGroupIngress' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'DBSecurityGroupWrapper', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'AuthorizeDBSecurityGroupIngress', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2014-10-31', + ), + 'DBSecurityGroupName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'CIDRIP' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'EC2SecurityGroupName' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'EC2SecurityGroupId' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'EC2SecurityGroupOwnerId' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'DBSecurityGroupName does not refer to an existing DB security group.', + 'class' => 'DBSecurityGroupNotFoundException', + ), + array( + 'reason' => 'The state of the DB security group does not allow deletion.', + 'class' => 'InvalidDBSecurityGroupStateException', + ), + array( + 'reason' => 'The specified CIDRIP or EC2 security group is already authorized for the specified DB security group.', + 'class' => 'AuthorizationAlreadyExistsException', + ), + array( + 'reason' => 'DB security group authorization quota has been reached.', + 'class' => 'AuthorizationQuotaExceededException', + ), + ), + ), + 'CopyDBParameterGroup' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'DBParameterGroupWrapper', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'CopyDBParameterGroup', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2014-10-31', + ), + 'SourceDBParameterGroupIdentifier' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'TargetDBParameterGroupIdentifier' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'TargetDBParameterGroupDescription' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'Tags' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'Tags.member', + 'items' => array( + 'name' => 'Tag', + 'type' => 'object', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + ), + 'Value' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'DBParameterGroupName does not refer to an existing DB parameter group.', + 'class' => 'DBParameterGroupNotFoundException', + ), + array( + 'reason' => 'A DB parameter group with the same name exists.', + 'class' => 'DBParameterGroupAlreadyExistsException', + ), + array( + 'reason' => 'Request would result in user exceeding the allowed number of DB parameter groups.', + 'class' => 'DBParameterGroupQuotaExceededException', + ), + ), + ), + 'CopyDBSnapshot' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'DBSnapshotWrapper', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'CopyDBSnapshot', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2014-10-31', + ), + 'SourceDBSnapshotIdentifier' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'TargetDBSnapshotIdentifier' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'Tags' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'Tags.member', + 'items' => array( + 'name' => 'Tag', + 'type' => 'object', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + ), + 'Value' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'DBSnapshotIdentifier is already used by an existing snapshot.', + 'class' => 'DBSnapshotAlreadyExistsException', + ), + array( + 'reason' => 'DBSnapshotIdentifier does not refer to an existing DB snapshot.', + 'class' => 'DBSnapshotNotFoundException', + ), + array( + 'reason' => 'The state of the DB snapshot does not allow deletion.', + 'class' => 'InvalidDBSnapshotStateException', + ), + array( + 'reason' => 'Request would result in user exceeding the allowed number of DB snapshots.', + 'class' => 'SnapshotQuotaExceededException', + ), + ), + ), + 'CopyOptionGroup' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'OptionGroupWrapper', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'CopyOptionGroup', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2014-10-31', + ), + 'SourceOptionGroupIdentifier' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'TargetOptionGroupIdentifier' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'TargetOptionGroupDescription' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'Tags' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'Tags.member', + 'items' => array( + 'name' => 'Tag', + 'type' => 'object', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + ), + 'Value' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The option group you are trying to create already exists.', + 'class' => 'OptionGroupAlreadyExistsException', + ), + array( + 'reason' => 'The specified option group could not be found.', + 'class' => 'OptionGroupNotFoundException', + ), + array( + 'reason' => 'The quota of 20 option groups was exceeded for this AWS account.', + 'class' => 'OptionGroupQuotaExceededException', + ), + ), + ), + 'CreateDBInstance' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'DBInstanceWrapper', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'CreateDBInstance', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2014-10-31', + ), + 'DBName' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'DBInstanceIdentifier' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'AllocatedStorage' => array( + 'required' => true, + 'type' => 'numeric', + 'location' => 'aws.query', + ), + 'DBInstanceClass' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'Engine' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'MasterUsername' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'MasterUserPassword' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'DBSecurityGroups' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'DBSecurityGroups.member', + 'items' => array( + 'name' => 'DBSecurityGroupName', + 'type' => 'string', + ), + ), + 'VpcSecurityGroupIds' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'VpcSecurityGroupIds.member', + 'items' => array( + 'name' => 'VpcSecurityGroupId', + 'type' => 'string', + ), + ), + 'AvailabilityZone' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'DBSubnetGroupName' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'PreferredMaintenanceWindow' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'DBParameterGroupName' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'BackupRetentionPeriod' => array( + 'type' => 'numeric', + 'location' => 'aws.query', + ), + 'PreferredBackupWindow' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'Port' => array( + 'type' => 'numeric', + 'location' => 'aws.query', + ), + 'MultiAZ' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'EngineVersion' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'AutoMinorVersionUpgrade' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'LicenseModel' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'Iops' => array( + 'type' => 'numeric', + 'location' => 'aws.query', + ), + 'OptionGroupName' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'CharacterSetName' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'PubliclyAccessible' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'Tags' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'Tags.member', + 'items' => array( + 'name' => 'Tag', + 'type' => 'object', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + ), + 'Value' => array( + 'type' => 'string', + ), + ), + ), + ), + 'StorageType' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'TdeCredentialArn' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'TdeCredentialPassword' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'StorageEncrypted' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'KmsKeyId' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'User already has a DB instance with the given identifier.', + 'class' => 'DBInstanceAlreadyExistsException', + ), + array( + 'reason' => 'Specified DB instance class is not available in the specified Availability Zone.', + 'class' => 'InsufficientDBInstanceCapacityException', + ), + array( + 'reason' => 'DBParameterGroupName does not refer to an existing DB parameter group.', + 'class' => 'DBParameterGroupNotFoundException', + ), + array( + 'reason' => 'DBSecurityGroupName does not refer to an existing DB security group.', + 'class' => 'DBSecurityGroupNotFoundException', + ), + array( + 'reason' => 'Request would result in user exceeding the allowed number of DB instances.', + 'class' => 'InstanceQuotaExceededException', + ), + array( + 'reason' => 'Request would result in user exceeding the allowed amount of storage available across all DB instances.', + 'class' => 'StorageQuotaExceededException', + ), + array( + 'reason' => 'DBSubnetGroupName does not refer to an existing DB subnet group.', + 'class' => 'DBSubnetGroupNotFoundException', + ), + array( + 'reason' => 'Subnets in the DB subnet group should cover at least two Availability Zones unless there is only one Availability Zone.', + 'class' => 'DBSubnetGroupDoesNotCoverEnoughAZsException', + ), + array( + 'reason' => 'The requested subnet is invalid, or multiple subnets were requested that are not all in a common VPC.', + 'class' => 'InvalidSubnetException', + ), + array( + 'reason' => 'DB subnet group does not cover all Availability Zones after it is created because users\' change.', + 'class' => 'InvalidVPCNetworkStateException', + ), + array( + 'reason' => 'Provisioned IOPS not available in the specified Availability Zone.', + 'class' => 'ProvisionedIopsNotAvailableInAZException', + ), + array( + 'reason' => 'The specified option group could not be found.', + 'class' => 'OptionGroupNotFoundException', + ), + array( + 'reason' => 'StorageType specified cannot be associated with the DB Instance.', + 'class' => 'StorageTypeNotSupportedException', + ), + array( + 'reason' => 'Specified CIDRIP or EC2 security group is not authorized for the specified DB security group. RDS may not also be authorized via IAM to perform necessary actions on your behalf.', + 'class' => 'AuthorizationNotFoundException', + ), + array( + 'reason' => 'Error accessing KMS key.', + 'class' => 'KMSKeyNotAccessibleException', + ), + ), + ), + 'CreateDBInstanceReadReplica' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'DBInstanceWrapper', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'CreateDBInstanceReadReplica', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2014-10-31', + ), + 'DBInstanceIdentifier' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'SourceDBInstanceIdentifier' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'DBInstanceClass' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'AvailabilityZone' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'Port' => array( + 'type' => 'numeric', + 'location' => 'aws.query', + ), + 'AutoMinorVersionUpgrade' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'Iops' => array( + 'type' => 'numeric', + 'location' => 'aws.query', + ), + 'OptionGroupName' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'PubliclyAccessible' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'Tags' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'Tags.member', + 'items' => array( + 'name' => 'Tag', + 'type' => 'object', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + ), + 'Value' => array( + 'type' => 'string', + ), + ), + ), + ), + 'DBSubnetGroupName' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'StorageType' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'User already has a DB instance with the given identifier.', + 'class' => 'DBInstanceAlreadyExistsException', + ), + array( + 'reason' => 'Specified DB instance class is not available in the specified Availability Zone.', + 'class' => 'InsufficientDBInstanceCapacityException', + ), + array( + 'reason' => 'DBParameterGroupName does not refer to an existing DB parameter group.', + 'class' => 'DBParameterGroupNotFoundException', + ), + array( + 'reason' => 'DBSecurityGroupName does not refer to an existing DB security group.', + 'class' => 'DBSecurityGroupNotFoundException', + ), + array( + 'reason' => 'Request would result in user exceeding the allowed number of DB instances.', + 'class' => 'InstanceQuotaExceededException', + ), + array( + 'reason' => 'Request would result in user exceeding the allowed amount of storage available across all DB instances.', + 'class' => 'StorageQuotaExceededException', + ), + array( + 'reason' => 'DBInstanceIdentifier does not refer to an existing DB instance.', + 'class' => 'DBInstanceNotFoundException', + ), + array( + 'reason' => 'The specified DB instance is not in the available state.', + 'class' => 'InvalidDBInstanceStateException', + ), + array( + 'reason' => 'DBSubnetGroupName does not refer to an existing DB subnet group.', + 'class' => 'DBSubnetGroupNotFoundException', + ), + array( + 'reason' => 'Subnets in the DB subnet group should cover at least two Availability Zones unless there is only one Availability Zone.', + 'class' => 'DBSubnetGroupDoesNotCoverEnoughAZsException', + ), + array( + 'reason' => 'The requested subnet is invalid, or multiple subnets were requested that are not all in a common VPC.', + 'class' => 'InvalidSubnetException', + ), + array( + 'reason' => 'DB subnet group does not cover all Availability Zones after it is created because users\' change.', + 'class' => 'InvalidVPCNetworkStateException', + ), + array( + 'reason' => 'Provisioned IOPS not available in the specified Availability Zone.', + 'class' => 'ProvisionedIopsNotAvailableInAZException', + ), + array( + 'reason' => 'The specified option group could not be found.', + 'class' => 'OptionGroupNotFoundException', + ), + array( + 'reason' => 'Indicates that the DBSubnetGroup should not be specified while creating read replicas that lie in the same region as the source instance.', + 'class' => 'DBSubnetGroupNotAllowedException', + ), + array( + 'reason' => 'Indicates the DBSubnetGroup does not belong to the same VPC as that of an existing cross region read replica of the same source instance.', + 'class' => 'InvalidDBSubnetGroupException', + ), + array( + 'reason' => 'StorageType specified cannot be associated with the DB Instance.', + 'class' => 'StorageTypeNotSupportedException', + ), + array( + 'reason' => 'Error accessing KMS key.', + 'class' => 'KMSKeyNotAccessibleException', + ), + ), + ), + 'CreateDBParameterGroup' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'DBParameterGroupWrapper', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'CreateDBParameterGroup', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2014-10-31', + ), + 'DBParameterGroupName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'DBParameterGroupFamily' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'Description' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'Tags' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'Tags.member', + 'items' => array( + 'name' => 'Tag', + 'type' => 'object', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + ), + 'Value' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'Request would result in user exceeding the allowed number of DB parameter groups.', + 'class' => 'DBParameterGroupQuotaExceededException', + ), + array( + 'reason' => 'A DB parameter group with the same name exists.', + 'class' => 'DBParameterGroupAlreadyExistsException', + ), + ), + ), + 'CreateDBSecurityGroup' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'DBSecurityGroupWrapper', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'CreateDBSecurityGroup', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2014-10-31', + ), + 'DBSecurityGroupName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'DBSecurityGroupDescription' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'Tags' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'Tags.member', + 'items' => array( + 'name' => 'Tag', + 'type' => 'object', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + ), + 'Value' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'A DB security group with the name specified in DBSecurityGroupName already exists.', + 'class' => 'DBSecurityGroupAlreadyExistsException', + ), + array( + 'reason' => 'Request would result in user exceeding the allowed number of DB security groups.', + 'class' => 'DBSecurityGroupQuotaExceededException', + ), + array( + 'reason' => 'A DB security group is not allowed for this action.', + 'class' => 'DBSecurityGroupNotSupportedException', + ), + ), + ), + 'CreateDBSnapshot' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'DBSnapshotWrapper', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'CreateDBSnapshot', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2014-10-31', + ), + 'DBSnapshotIdentifier' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'DBInstanceIdentifier' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'Tags' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'Tags.member', + 'items' => array( + 'name' => 'Tag', + 'type' => 'object', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + ), + 'Value' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'DBSnapshotIdentifier is already used by an existing snapshot.', + 'class' => 'DBSnapshotAlreadyExistsException', + ), + array( + 'reason' => 'The specified DB instance is not in the available state.', + 'class' => 'InvalidDBInstanceStateException', + ), + array( + 'reason' => 'DBInstanceIdentifier does not refer to an existing DB instance.', + 'class' => 'DBInstanceNotFoundException', + ), + array( + 'reason' => 'Request would result in user exceeding the allowed number of DB snapshots.', + 'class' => 'SnapshotQuotaExceededException', + ), + ), + ), + 'CreateDBSubnetGroup' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'DBSubnetGroupWrapper', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'CreateDBSubnetGroup', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2014-10-31', + ), + 'DBSubnetGroupName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'DBSubnetGroupDescription' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'SubnetIds' => array( + 'required' => true, + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'SubnetIds.member', + 'items' => array( + 'name' => 'SubnetIdentifier', + 'type' => 'string', + ), + ), + 'Tags' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'Tags.member', + 'items' => array( + 'name' => 'Tag', + 'type' => 'object', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + ), + 'Value' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'DBSubnetGroupName is already used by an existing DB subnet group.', + 'class' => 'DBSubnetGroupAlreadyExistsException', + ), + array( + 'reason' => 'Request would result in user exceeding the allowed number of DB subnet groups.', + 'class' => 'DBSubnetGroupQuotaExceededException', + ), + array( + 'reason' => 'Request would result in user exceeding the allowed number of subnets in a DB subnet groups.', + 'class' => 'DBSubnetQuotaExceededException', + ), + array( + 'reason' => 'Subnets in the DB subnet group should cover at least two Availability Zones unless there is only one Availability Zone.', + 'class' => 'DBSubnetGroupDoesNotCoverEnoughAZsException', + ), + array( + 'reason' => 'The requested subnet is invalid, or multiple subnets were requested that are not all in a common VPC.', + 'class' => 'InvalidSubnetException', + ), + ), + ), + 'CreateEventSubscription' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'EventSubscriptionWrapper', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'CreateEventSubscription', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2014-10-31', + ), + 'SubscriptionName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'SnsTopicArn' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'SourceType' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'EventCategories' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'EventCategories.member', + 'items' => array( + 'name' => 'EventCategory', + 'type' => 'string', + ), + ), + 'SourceIds' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'SourceIds.member', + 'items' => array( + 'name' => 'SourceId', + 'type' => 'string', + ), + ), + 'Enabled' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'Tags' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'Tags.member', + 'items' => array( + 'name' => 'Tag', + 'type' => 'object', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + ), + 'Value' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'You have reached the maximum number of event subscriptions.', + 'class' => 'EventSubscriptionQuotaExceededException', + ), + array( + 'reason' => 'The supplied subscription name already exists.', + 'class' => 'SubscriptionAlreadyExistException', + ), + array( + 'reason' => 'SNS has responded that there is a problem with the SND topic specified.', + 'class' => 'SNSInvalidTopicException', + ), + array( + 'reason' => 'You do not have permission to publish to the SNS topic ARN.', + 'class' => 'SNSNoAuthorizationException', + ), + array( + 'reason' => 'The SNS topic ARN does not exist.', + 'class' => 'SNSTopicArnNotFoundException', + ), + array( + 'reason' => 'The supplied category does not exist.', + 'class' => 'SubscriptionCategoryNotFoundException', + ), + array( + 'reason' => 'The requested source could not be found.', + 'class' => 'SourceNotFoundException', + ), + ), + ), + 'CreateOptionGroup' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'OptionGroupWrapper', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'CreateOptionGroup', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2014-10-31', + ), + 'OptionGroupName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'EngineName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'MajorEngineVersion' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'OptionGroupDescription' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'Tags' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'Tags.member', + 'items' => array( + 'name' => 'Tag', + 'type' => 'object', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + ), + 'Value' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The option group you are trying to create already exists.', + 'class' => 'OptionGroupAlreadyExistsException', + ), + array( + 'reason' => 'The quota of 20 option groups was exceeded for this AWS account.', + 'class' => 'OptionGroupQuotaExceededException', + ), + ), + ), + 'DeleteDBInstance' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'DBInstanceWrapper', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DeleteDBInstance', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2014-10-31', + ), + 'DBInstanceIdentifier' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'SkipFinalSnapshot' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'FinalDBSnapshotIdentifier' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'DBInstanceIdentifier does not refer to an existing DB instance.', + 'class' => 'DBInstanceNotFoundException', + ), + array( + 'reason' => 'The specified DB instance is not in the available state.', + 'class' => 'InvalidDBInstanceStateException', + ), + array( + 'reason' => 'DBSnapshotIdentifier is already used by an existing snapshot.', + 'class' => 'DBSnapshotAlreadyExistsException', + ), + array( + 'reason' => 'Request would result in user exceeding the allowed number of DB snapshots.', + 'class' => 'SnapshotQuotaExceededException', + ), + ), + ), + 'DeleteDBParameterGroup' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'EmptyOutput', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DeleteDBParameterGroup', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2014-10-31', + ), + 'DBParameterGroupName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The DB parameter group cannot be deleted because it is in use.', + 'class' => 'InvalidDBParameterGroupStateException', + ), + array( + 'reason' => 'DBParameterGroupName does not refer to an existing DB parameter group.', + 'class' => 'DBParameterGroupNotFoundException', + ), + ), + ), + 'DeleteDBSecurityGroup' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'EmptyOutput', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DeleteDBSecurityGroup', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2014-10-31', + ), + 'DBSecurityGroupName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The state of the DB security group does not allow deletion.', + 'class' => 'InvalidDBSecurityGroupStateException', + ), + array( + 'reason' => 'DBSecurityGroupName does not refer to an existing DB security group.', + 'class' => 'DBSecurityGroupNotFoundException', + ), + ), + ), + 'DeleteDBSnapshot' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'DBSnapshotWrapper', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DeleteDBSnapshot', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2014-10-31', + ), + 'DBSnapshotIdentifier' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The state of the DB snapshot does not allow deletion.', + 'class' => 'InvalidDBSnapshotStateException', + ), + array( + 'reason' => 'DBSnapshotIdentifier does not refer to an existing DB snapshot.', + 'class' => 'DBSnapshotNotFoundException', + ), + ), + ), + 'DeleteDBSubnetGroup' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'EmptyOutput', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DeleteDBSubnetGroup', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2014-10-31', + ), + 'DBSubnetGroupName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The DB subnet group cannot be deleted because it is in use.', + 'class' => 'InvalidDBSubnetGroupStateException', + ), + array( + 'reason' => 'The DB subnet is not in the available state.', + 'class' => 'InvalidDBSubnetStateException', + ), + array( + 'reason' => 'DBSubnetGroupName does not refer to an existing DB subnet group.', + 'class' => 'DBSubnetGroupNotFoundException', + ), + ), + ), + 'DeleteEventSubscription' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'EventSubscriptionWrapper', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DeleteEventSubscription', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2014-10-31', + ), + 'SubscriptionName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The subscription name does not exist.', + 'class' => 'SubscriptionNotFoundException', + ), + array( + 'reason' => 'This error can occur if someone else is modifying a subscription. You should retry the action.', + 'class' => 'InvalidEventSubscriptionStateException', + ), + ), + ), + 'DeleteOptionGroup' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'EmptyOutput', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DeleteOptionGroup', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2014-10-31', + ), + 'OptionGroupName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The specified option group could not be found.', + 'class' => 'OptionGroupNotFoundException', + ), + array( + 'reason' => 'The option group is not in the available state.', + 'class' => 'InvalidOptionGroupStateException', + ), + ), + ), + 'DescribeAccountAttributes' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'AccountAttributesMessage', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DescribeAccountAttributes', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2014-10-31', + ), + ), + ), + 'DescribeCertificates' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'CertificateMessage', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DescribeCertificates', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2014-10-31', + ), + 'CertificateIdentifier' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'Filters' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'Filters.member', + 'items' => array( + 'name' => 'Filter', + 'type' => 'object', + 'properties' => array( + 'Name' => array( + 'required' => true, + 'type' => 'string', + ), + 'Values' => array( + 'required' => true, + 'type' => 'array', + 'sentAs' => 'Values.member', + 'items' => array( + 'name' => 'Value', + 'type' => 'string', + ), + ), + ), + ), + ), + 'MaxRecords' => array( + 'type' => 'numeric', + 'location' => 'aws.query', + ), + 'Marker' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'CertificateIdentifier does not refer to an existing certificate.', + 'class' => 'CertificateNotFoundException', + ), + ), + ), + 'DescribeDBEngineVersions' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'DBEngineVersionMessage', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DescribeDBEngineVersions', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2014-10-31', + ), + 'Engine' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'EngineVersion' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'DBParameterGroupFamily' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'Filters' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'Filters.member', + 'items' => array( + 'name' => 'Filter', + 'type' => 'object', + 'properties' => array( + 'Name' => array( + 'required' => true, + 'type' => 'string', + ), + 'Values' => array( + 'required' => true, + 'type' => 'array', + 'sentAs' => 'Values.member', + 'items' => array( + 'name' => 'Value', + 'type' => 'string', + ), + ), + ), + ), + ), + 'MaxRecords' => array( + 'type' => 'numeric', + 'location' => 'aws.query', + ), + 'Marker' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'DefaultOnly' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'ListSupportedCharacterSets' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + ), + ), + 'DescribeDBInstances' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'DBInstanceMessage', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DescribeDBInstances', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2014-10-31', + ), + 'DBInstanceIdentifier' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'Filters' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'Filters.member', + 'items' => array( + 'name' => 'Filter', + 'type' => 'object', + 'properties' => array( + 'Name' => array( + 'required' => true, + 'type' => 'string', + ), + 'Values' => array( + 'required' => true, + 'type' => 'array', + 'sentAs' => 'Values.member', + 'items' => array( + 'name' => 'Value', + 'type' => 'string', + ), + ), + ), + ), + ), + 'MaxRecords' => array( + 'type' => 'numeric', + 'location' => 'aws.query', + ), + 'Marker' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'DBInstanceIdentifier does not refer to an existing DB instance.', + 'class' => 'DBInstanceNotFoundException', + ), + ), + ), + 'DescribeDBLogFiles' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'DescribeDBLogFilesResponse', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DescribeDBLogFiles', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2014-10-31', + ), + 'DBInstanceIdentifier' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'FilenameContains' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'FileLastWritten' => array( + 'type' => 'numeric', + 'location' => 'aws.query', + ), + 'FileSize' => array( + 'type' => 'numeric', + 'location' => 'aws.query', + ), + 'Filters' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'Filters.member', + 'items' => array( + 'name' => 'Filter', + 'type' => 'object', + 'properties' => array( + 'Name' => array( + 'required' => true, + 'type' => 'string', + ), + 'Values' => array( + 'required' => true, + 'type' => 'array', + 'sentAs' => 'Values.member', + 'items' => array( + 'name' => 'Value', + 'type' => 'string', + ), + ), + ), + ), + ), + 'MaxRecords' => array( + 'type' => 'numeric', + 'location' => 'aws.query', + ), + 'Marker' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'DBInstanceIdentifier does not refer to an existing DB instance.', + 'class' => 'DBInstanceNotFoundException', + ), + ), + ), + 'DescribeDBParameterGroups' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'DBParameterGroupsMessage', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DescribeDBParameterGroups', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2014-10-31', + ), + 'DBParameterGroupName' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'Filters' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'Filters.member', + 'items' => array( + 'name' => 'Filter', + 'type' => 'object', + 'properties' => array( + 'Name' => array( + 'required' => true, + 'type' => 'string', + ), + 'Values' => array( + 'required' => true, + 'type' => 'array', + 'sentAs' => 'Values.member', + 'items' => array( + 'name' => 'Value', + 'type' => 'string', + ), + ), + ), + ), + ), + 'MaxRecords' => array( + 'type' => 'numeric', + 'location' => 'aws.query', + ), + 'Marker' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'DBParameterGroupName does not refer to an existing DB parameter group.', + 'class' => 'DBParameterGroupNotFoundException', + ), + ), + ), + 'DescribeDBParameters' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'DBParameterGroupDetails', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DescribeDBParameters', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2014-10-31', + ), + 'DBParameterGroupName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'Source' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'Filters' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'Filters.member', + 'items' => array( + 'name' => 'Filter', + 'type' => 'object', + 'properties' => array( + 'Name' => array( + 'required' => true, + 'type' => 'string', + ), + 'Values' => array( + 'required' => true, + 'type' => 'array', + 'sentAs' => 'Values.member', + 'items' => array( + 'name' => 'Value', + 'type' => 'string', + ), + ), + ), + ), + ), + 'MaxRecords' => array( + 'type' => 'numeric', + 'location' => 'aws.query', + ), + 'Marker' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'DBParameterGroupName does not refer to an existing DB parameter group.', + 'class' => 'DBParameterGroupNotFoundException', + ), + ), + ), + 'DescribeDBSecurityGroups' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'DBSecurityGroupMessage', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DescribeDBSecurityGroups', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2014-10-31', + ), + 'DBSecurityGroupName' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'Filters' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'Filters.member', + 'items' => array( + 'name' => 'Filter', + 'type' => 'object', + 'properties' => array( + 'Name' => array( + 'required' => true, + 'type' => 'string', + ), + 'Values' => array( + 'required' => true, + 'type' => 'array', + 'sentAs' => 'Values.member', + 'items' => array( + 'name' => 'Value', + 'type' => 'string', + ), + ), + ), + ), + ), + 'MaxRecords' => array( + 'type' => 'numeric', + 'location' => 'aws.query', + ), + 'Marker' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'DBSecurityGroupName does not refer to an existing DB security group.', + 'class' => 'DBSecurityGroupNotFoundException', + ), + ), + ), + 'DescribeDBSnapshots' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'DBSnapshotMessage', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DescribeDBSnapshots', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2014-10-31', + ), + 'DBInstanceIdentifier' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'DBSnapshotIdentifier' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'SnapshotType' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'Filters' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'Filters.member', + 'items' => array( + 'name' => 'Filter', + 'type' => 'object', + 'properties' => array( + 'Name' => array( + 'required' => true, + 'type' => 'string', + ), + 'Values' => array( + 'required' => true, + 'type' => 'array', + 'sentAs' => 'Values.member', + 'items' => array( + 'name' => 'Value', + 'type' => 'string', + ), + ), + ), + ), + ), + 'MaxRecords' => array( + 'type' => 'numeric', + 'location' => 'aws.query', + ), + 'Marker' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'DBSnapshotIdentifier does not refer to an existing DB snapshot.', + 'class' => 'DBSnapshotNotFoundException', + ), + ), + ), + 'DescribeDBSubnetGroups' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'DBSubnetGroupMessage', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DescribeDBSubnetGroups', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2014-10-31', + ), + 'DBSubnetGroupName' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'Filters' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'Filters.member', + 'items' => array( + 'name' => 'Filter', + 'type' => 'object', + 'properties' => array( + 'Name' => array( + 'required' => true, + 'type' => 'string', + ), + 'Values' => array( + 'required' => true, + 'type' => 'array', + 'sentAs' => 'Values.member', + 'items' => array( + 'name' => 'Value', + 'type' => 'string', + ), + ), + ), + ), + ), + 'MaxRecords' => array( + 'type' => 'numeric', + 'location' => 'aws.query', + ), + 'Marker' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'DBSubnetGroupName does not refer to an existing DB subnet group.', + 'class' => 'DBSubnetGroupNotFoundException', + ), + ), + ), + 'DescribeEngineDefaultParameters' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'EngineDefaultsWrapper', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DescribeEngineDefaultParameters', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2014-10-31', + ), + 'DBParameterGroupFamily' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'Filters' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'Filters.member', + 'items' => array( + 'name' => 'Filter', + 'type' => 'object', + 'properties' => array( + 'Name' => array( + 'required' => true, + 'type' => 'string', + ), + 'Values' => array( + 'required' => true, + 'type' => 'array', + 'sentAs' => 'Values.member', + 'items' => array( + 'name' => 'Value', + 'type' => 'string', + ), + ), + ), + ), + ), + 'MaxRecords' => array( + 'type' => 'numeric', + 'location' => 'aws.query', + ), + 'Marker' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + ), + 'DescribeEventCategories' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'EventCategoriesMessage', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DescribeEventCategories', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2014-10-31', + ), + 'SourceType' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'Filters' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'Filters.member', + 'items' => array( + 'name' => 'Filter', + 'type' => 'object', + 'properties' => array( + 'Name' => array( + 'required' => true, + 'type' => 'string', + ), + 'Values' => array( + 'required' => true, + 'type' => 'array', + 'sentAs' => 'Values.member', + 'items' => array( + 'name' => 'Value', + 'type' => 'string', + ), + ), + ), + ), + ), + ), + ), + 'DescribeEventSubscriptions' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'EventSubscriptionsMessage', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DescribeEventSubscriptions', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2014-10-31', + ), + 'SubscriptionName' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'Filters' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'Filters.member', + 'items' => array( + 'name' => 'Filter', + 'type' => 'object', + 'properties' => array( + 'Name' => array( + 'required' => true, + 'type' => 'string', + ), + 'Values' => array( + 'required' => true, + 'type' => 'array', + 'sentAs' => 'Values.member', + 'items' => array( + 'name' => 'Value', + 'type' => 'string', + ), + ), + ), + ), + ), + 'MaxRecords' => array( + 'type' => 'numeric', + 'location' => 'aws.query', + ), + 'Marker' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The subscription name does not exist.', + 'class' => 'SubscriptionNotFoundException', + ), + ), + ), + 'DescribeEvents' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'EventsMessage', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DescribeEvents', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2014-10-31', + ), + 'SourceIdentifier' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'SourceType' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'StartTime' => array( + 'type' => array( + 'object', + 'string', + 'integer', + ), + 'format' => 'date-time', + 'location' => 'aws.query', + ), + 'EndTime' => array( + 'type' => array( + 'object', + 'string', + 'integer', + ), + 'format' => 'date-time', + 'location' => 'aws.query', + ), + 'Duration' => array( + 'type' => 'numeric', + 'location' => 'aws.query', + ), + 'EventCategories' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'EventCategories.member', + 'items' => array( + 'name' => 'EventCategory', + 'type' => 'string', + ), + ), + 'Filters' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'Filters.member', + 'items' => array( + 'name' => 'Filter', + 'type' => 'object', + 'properties' => array( + 'Name' => array( + 'required' => true, + 'type' => 'string', + ), + 'Values' => array( + 'required' => true, + 'type' => 'array', + 'sentAs' => 'Values.member', + 'items' => array( + 'name' => 'Value', + 'type' => 'string', + ), + ), + ), + ), + ), + 'MaxRecords' => array( + 'type' => 'numeric', + 'location' => 'aws.query', + ), + 'Marker' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + ), + 'DescribeOptionGroupOptions' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'OptionGroupOptionsMessage', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DescribeOptionGroupOptions', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2014-10-31', + ), + 'EngineName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'MajorEngineVersion' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'Filters' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'Filters.member', + 'items' => array( + 'name' => 'Filter', + 'type' => 'object', + 'properties' => array( + 'Name' => array( + 'required' => true, + 'type' => 'string', + ), + 'Values' => array( + 'required' => true, + 'type' => 'array', + 'sentAs' => 'Values.member', + 'items' => array( + 'name' => 'Value', + 'type' => 'string', + ), + ), + ), + ), + ), + 'MaxRecords' => array( + 'type' => 'numeric', + 'location' => 'aws.query', + ), + 'Marker' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + ), + 'DescribeOptionGroups' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'OptionGroups', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DescribeOptionGroups', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2014-10-31', + ), + 'OptionGroupName' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'Filters' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'Filters.member', + 'items' => array( + 'name' => 'Filter', + 'type' => 'object', + 'properties' => array( + 'Name' => array( + 'required' => true, + 'type' => 'string', + ), + 'Values' => array( + 'required' => true, + 'type' => 'array', + 'sentAs' => 'Values.member', + 'items' => array( + 'name' => 'Value', + 'type' => 'string', + ), + ), + ), + ), + ), + 'Marker' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'MaxRecords' => array( + 'type' => 'numeric', + 'location' => 'aws.query', + ), + 'EngineName' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'MajorEngineVersion' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The specified option group could not be found.', + 'class' => 'OptionGroupNotFoundException', + ), + ), + ), + 'DescribeOrderableDBInstanceOptions' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'OrderableDBInstanceOptionsMessage', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DescribeOrderableDBInstanceOptions', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2014-10-31', + ), + 'Engine' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'EngineVersion' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'DBInstanceClass' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'LicenseModel' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'Vpc' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'Filters' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'Filters.member', + 'items' => array( + 'name' => 'Filter', + 'type' => 'object', + 'properties' => array( + 'Name' => array( + 'required' => true, + 'type' => 'string', + ), + 'Values' => array( + 'required' => true, + 'type' => 'array', + 'sentAs' => 'Values.member', + 'items' => array( + 'name' => 'Value', + 'type' => 'string', + ), + ), + ), + ), + ), + 'MaxRecords' => array( + 'type' => 'numeric', + 'location' => 'aws.query', + ), + 'Marker' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + ), + 'DescribePendingMaintenanceActions' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'PendingMaintenanceActionsMessage', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DescribePendingMaintenanceActions', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2014-10-31', + ), + 'ResourceIdentifier' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'Filters' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'Filters.member', + 'items' => array( + 'name' => 'Filter', + 'type' => 'object', + 'properties' => array( + 'Name' => array( + 'required' => true, + 'type' => 'string', + ), + 'Values' => array( + 'required' => true, + 'type' => 'array', + 'sentAs' => 'Values.member', + 'items' => array( + 'name' => 'Value', + 'type' => 'string', + ), + ), + ), + ), + ), + 'Marker' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'MaxRecords' => array( + 'type' => 'numeric', + 'location' => 'aws.query', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The specified resource ID was not found.', + 'class' => 'ResourceNotFoundException', + ), + ), + ), + 'DescribeReservedDBInstances' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'ReservedDBInstanceMessage', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DescribeReservedDBInstances', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2014-10-31', + ), + 'ReservedDBInstanceId' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'ReservedDBInstancesOfferingId' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'DBInstanceClass' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'Duration' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'ProductDescription' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'OfferingType' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'MultiAZ' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'Filters' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'Filters.member', + 'items' => array( + 'name' => 'Filter', + 'type' => 'object', + 'properties' => array( + 'Name' => array( + 'required' => true, + 'type' => 'string', + ), + 'Values' => array( + 'required' => true, + 'type' => 'array', + 'sentAs' => 'Values.member', + 'items' => array( + 'name' => 'Value', + 'type' => 'string', + ), + ), + ), + ), + ), + 'MaxRecords' => array( + 'type' => 'numeric', + 'location' => 'aws.query', + ), + 'Marker' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The specified reserved DB Instance not found.', + 'class' => 'ReservedDBInstanceNotFoundException', + ), + ), + ), + 'DescribeReservedDBInstancesOfferings' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'ReservedDBInstancesOfferingMessage', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DescribeReservedDBInstancesOfferings', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2014-10-31', + ), + 'ReservedDBInstancesOfferingId' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'DBInstanceClass' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'Duration' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'ProductDescription' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'OfferingType' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'MultiAZ' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'Filters' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'Filters.member', + 'items' => array( + 'name' => 'Filter', + 'type' => 'object', + 'properties' => array( + 'Name' => array( + 'required' => true, + 'type' => 'string', + ), + 'Values' => array( + 'required' => true, + 'type' => 'array', + 'sentAs' => 'Values.member', + 'items' => array( + 'name' => 'Value', + 'type' => 'string', + ), + ), + ), + ), + ), + 'MaxRecords' => array( + 'type' => 'numeric', + 'location' => 'aws.query', + ), + 'Marker' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'Specified offering does not exist.', + 'class' => 'ReservedDBInstancesOfferingNotFoundException', + ), + ), + ), + 'DownloadDBLogFilePortion' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'DownloadDBLogFilePortionDetails', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DownloadDBLogFilePortion', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2014-10-31', + ), + 'DBInstanceIdentifier' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'LogFileName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'Marker' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'NumberOfLines' => array( + 'type' => 'numeric', + 'location' => 'aws.query', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'DBInstanceIdentifier does not refer to an existing DB instance.', + 'class' => 'DBInstanceNotFoundException', + ), + ), + ), + 'ListTagsForResource' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'TagListMessage', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'ListTagsForResource', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2014-10-31', + ), + 'ResourceName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'Filters' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'Filters.member', + 'items' => array( + 'name' => 'Filter', + 'type' => 'object', + 'properties' => array( + 'Name' => array( + 'required' => true, + 'type' => 'string', + ), + 'Values' => array( + 'required' => true, + 'type' => 'array', + 'sentAs' => 'Values.member', + 'items' => array( + 'name' => 'Value', + 'type' => 'string', + ), + ), + ), + ), + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'DBInstanceIdentifier does not refer to an existing DB instance.', + 'class' => 'DBInstanceNotFoundException', + ), + array( + 'reason' => 'DBSnapshotIdentifier does not refer to an existing DB snapshot.', + 'class' => 'DBSnapshotNotFoundException', + ), + ), + ), + 'ModifyDBInstance' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'DBInstanceWrapper', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'ModifyDBInstance', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2014-10-31', + ), + 'DBInstanceIdentifier' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'AllocatedStorage' => array( + 'type' => 'numeric', + 'location' => 'aws.query', + ), + 'DBInstanceClass' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'DBSecurityGroups' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'DBSecurityGroups.member', + 'items' => array( + 'name' => 'DBSecurityGroupName', + 'type' => 'string', + ), + ), + 'VpcSecurityGroupIds' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'VpcSecurityGroupIds.member', + 'items' => array( + 'name' => 'VpcSecurityGroupId', + 'type' => 'string', + ), + ), + 'ApplyImmediately' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'MasterUserPassword' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'DBParameterGroupName' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'BackupRetentionPeriod' => array( + 'type' => 'numeric', + 'location' => 'aws.query', + ), + 'PreferredBackupWindow' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'PreferredMaintenanceWindow' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'MultiAZ' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'EngineVersion' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'AllowMajorVersionUpgrade' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'AutoMinorVersionUpgrade' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'Iops' => array( + 'type' => 'numeric', + 'location' => 'aws.query', + ), + 'OptionGroupName' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'NewDBInstanceIdentifier' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'StorageType' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'TdeCredentialArn' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'TdeCredentialPassword' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'CACertificateIdentifier' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The specified DB instance is not in the available state.', + 'class' => 'InvalidDBInstanceStateException', + ), + array( + 'reason' => 'The state of the DB security group does not allow deletion.', + 'class' => 'InvalidDBSecurityGroupStateException', + ), + array( + 'reason' => 'User already has a DB instance with the given identifier.', + 'class' => 'DBInstanceAlreadyExistsException', + ), + array( + 'reason' => 'DBInstanceIdentifier does not refer to an existing DB instance.', + 'class' => 'DBInstanceNotFoundException', + ), + array( + 'reason' => 'DBSecurityGroupName does not refer to an existing DB security group.', + 'class' => 'DBSecurityGroupNotFoundException', + ), + array( + 'reason' => 'DBParameterGroupName does not refer to an existing DB parameter group.', + 'class' => 'DBParameterGroupNotFoundException', + ), + array( + 'reason' => 'Specified DB instance class is not available in the specified Availability Zone.', + 'class' => 'InsufficientDBInstanceCapacityException', + ), + array( + 'reason' => 'Request would result in user exceeding the allowed amount of storage available across all DB instances.', + 'class' => 'StorageQuotaExceededException', + ), + array( + 'reason' => 'DB subnet group does not cover all Availability Zones after it is created because users\' change.', + 'class' => 'InvalidVPCNetworkStateException', + ), + array( + 'reason' => 'Provisioned IOPS not available in the specified Availability Zone.', + 'class' => 'ProvisionedIopsNotAvailableInAZException', + ), + array( + 'reason' => 'The specified option group could not be found.', + 'class' => 'OptionGroupNotFoundException', + ), + array( + 'reason' => 'The DB upgrade failed because a resource the DB depends on could not be modified.', + 'class' => 'DBUpgradeDependencyFailureException', + ), + array( + 'reason' => 'StorageType specified cannot be associated with the DB Instance.', + 'class' => 'StorageTypeNotSupportedException', + ), + array( + 'reason' => 'Specified CIDRIP or EC2 security group is not authorized for the specified DB security group. RDS may not also be authorized via IAM to perform necessary actions on your behalf.', + 'class' => 'AuthorizationNotFoundException', + ), + array( + 'reason' => 'CertificateIdentifier does not refer to an existing certificate.', + 'class' => 'CertificateNotFoundException', + ), + ), + ), + 'ModifyDBParameterGroup' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'DBParameterGroupNameMessage', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'ModifyDBParameterGroup', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2014-10-31', + ), + 'DBParameterGroupName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'Parameters' => array( + 'required' => true, + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'Parameters.member', + 'items' => array( + 'name' => 'Parameter', + 'type' => 'object', + 'properties' => array( + 'ParameterName' => array( + 'type' => 'string', + ), + 'ParameterValue' => array( + 'type' => 'string', + ), + 'Description' => array( + 'type' => 'string', + ), + 'Source' => array( + 'type' => 'string', + ), + 'ApplyType' => array( + 'type' => 'string', + ), + 'DataType' => array( + 'type' => 'string', + ), + 'AllowedValues' => array( + 'type' => 'string', + ), + 'IsModifiable' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + ), + 'MinimumEngineVersion' => array( + 'type' => 'string', + ), + 'ApplyMethod' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'DBParameterGroupName does not refer to an existing DB parameter group.', + 'class' => 'DBParameterGroupNotFoundException', + ), + array( + 'reason' => 'The DB parameter group cannot be deleted because it is in use.', + 'class' => 'InvalidDBParameterGroupStateException', + ), + ), + ), + 'ModifyDBSubnetGroup' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'DBSubnetGroupWrapper', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'ModifyDBSubnetGroup', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2014-10-31', + ), + 'DBSubnetGroupName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'DBSubnetGroupDescription' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'SubnetIds' => array( + 'required' => true, + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'SubnetIds.member', + 'items' => array( + 'name' => 'SubnetIdentifier', + 'type' => 'string', + ), + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'DBSubnetGroupName does not refer to an existing DB subnet group.', + 'class' => 'DBSubnetGroupNotFoundException', + ), + array( + 'reason' => 'Request would result in user exceeding the allowed number of subnets in a DB subnet groups.', + 'class' => 'DBSubnetQuotaExceededException', + ), + array( + 'reason' => 'The DB subnet is already in use in the Availability Zone.', + 'class' => 'SubnetAlreadyInUseException', + ), + array( + 'reason' => 'Subnets in the DB subnet group should cover at least two Availability Zones unless there is only one Availability Zone.', + 'class' => 'DBSubnetGroupDoesNotCoverEnoughAZsException', + ), + array( + 'reason' => 'The requested subnet is invalid, or multiple subnets were requested that are not all in a common VPC.', + 'class' => 'InvalidSubnetException', + ), + ), + ), + 'ModifyEventSubscription' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'EventSubscriptionWrapper', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'ModifyEventSubscription', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2014-10-31', + ), + 'SubscriptionName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'SnsTopicArn' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'SourceType' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'EventCategories' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'EventCategories.member', + 'items' => array( + 'name' => 'EventCategory', + 'type' => 'string', + ), + ), + 'Enabled' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'You have reached the maximum number of event subscriptions.', + 'class' => 'EventSubscriptionQuotaExceededException', + ), + array( + 'reason' => 'The subscription name does not exist.', + 'class' => 'SubscriptionNotFoundException', + ), + array( + 'reason' => 'SNS has responded that there is a problem with the SND topic specified.', + 'class' => 'SNSInvalidTopicException', + ), + array( + 'reason' => 'You do not have permission to publish to the SNS topic ARN.', + 'class' => 'SNSNoAuthorizationException', + ), + array( + 'reason' => 'The SNS topic ARN does not exist.', + 'class' => 'SNSTopicArnNotFoundException', + ), + array( + 'reason' => 'The supplied category does not exist.', + 'class' => 'SubscriptionCategoryNotFoundException', + ), + ), + ), + 'ModifyOptionGroup' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'OptionGroupWrapper', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'ModifyOptionGroup', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2014-10-31', + ), + 'OptionGroupName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'OptionsToInclude' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'OptionsToInclude.member', + 'items' => array( + 'name' => 'OptionConfiguration', + 'type' => 'object', + 'properties' => array( + 'OptionName' => array( + 'required' => true, + 'type' => 'string', + ), + 'Port' => array( + 'type' => 'numeric', + ), + 'DBSecurityGroupMemberships' => array( + 'type' => 'array', + 'sentAs' => 'DBSecurityGroupMemberships.member', + 'items' => array( + 'name' => 'DBSecurityGroupName', + 'type' => 'string', + ), + ), + 'VpcSecurityGroupMemberships' => array( + 'type' => 'array', + 'sentAs' => 'VpcSecurityGroupMemberships.member', + 'items' => array( + 'name' => 'VpcSecurityGroupId', + 'type' => 'string', + ), + ), + 'OptionSettings' => array( + 'type' => 'array', + 'sentAs' => 'OptionSettings.member', + 'items' => array( + 'name' => 'OptionSetting', + 'type' => 'object', + 'properties' => array( + 'Name' => array( + 'type' => 'string', + ), + 'Value' => array( + 'type' => 'string', + ), + 'DefaultValue' => array( + 'type' => 'string', + ), + 'Description' => array( + 'type' => 'string', + ), + 'ApplyType' => array( + 'type' => 'string', + ), + 'DataType' => array( + 'type' => 'string', + ), + 'AllowedValues' => array( + 'type' => 'string', + ), + 'IsModifiable' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + ), + 'IsCollection' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + ), + ), + ), + ), + ), + ), + ), + 'OptionsToRemove' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'OptionsToRemove.member', + 'items' => array( + 'name' => 'String', + 'type' => 'string', + ), + ), + 'ApplyImmediately' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The option group is not in the available state.', + 'class' => 'InvalidOptionGroupStateException', + ), + array( + 'reason' => 'The specified option group could not be found.', + 'class' => 'OptionGroupNotFoundException', + ), + ), + ), + 'PromoteReadReplica' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'DBInstanceWrapper', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'PromoteReadReplica', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2014-10-31', + ), + 'DBInstanceIdentifier' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'BackupRetentionPeriod' => array( + 'type' => 'numeric', + 'location' => 'aws.query', + ), + 'PreferredBackupWindow' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The specified DB instance is not in the available state.', + 'class' => 'InvalidDBInstanceStateException', + ), + array( + 'reason' => 'DBInstanceIdentifier does not refer to an existing DB instance.', + 'class' => 'DBInstanceNotFoundException', + ), + ), + ), + 'PurchaseReservedDBInstancesOffering' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'ReservedDBInstanceWrapper', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'PurchaseReservedDBInstancesOffering', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2014-10-31', + ), + 'ReservedDBInstancesOfferingId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'ReservedDBInstanceId' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'DBInstanceCount' => array( + 'type' => 'numeric', + 'location' => 'aws.query', + ), + 'Tags' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'Tags.member', + 'items' => array( + 'name' => 'Tag', + 'type' => 'object', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + ), + 'Value' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'Specified offering does not exist.', + 'class' => 'ReservedDBInstancesOfferingNotFoundException', + ), + array( + 'reason' => 'User already has a reservation with the given identifier.', + 'class' => 'ReservedDBInstanceAlreadyExistsException', + ), + array( + 'reason' => 'Request would exceed the user\'s DB Instance quota.', + 'class' => 'ReservedDBInstanceQuotaExceededException', + ), + ), + ), + 'RebootDBInstance' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'DBInstanceWrapper', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'RebootDBInstance', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2014-10-31', + ), + 'DBInstanceIdentifier' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'ForceFailover' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The specified DB instance is not in the available state.', + 'class' => 'InvalidDBInstanceStateException', + ), + array( + 'reason' => 'DBInstanceIdentifier does not refer to an existing DB instance.', + 'class' => 'DBInstanceNotFoundException', + ), + ), + ), + 'RemoveSourceIdentifierFromSubscription' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'EventSubscriptionWrapper', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'RemoveSourceIdentifierFromSubscription', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2014-10-31', + ), + 'SubscriptionName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'SourceIdentifier' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The subscription name does not exist.', + 'class' => 'SubscriptionNotFoundException', + ), + array( + 'reason' => 'The requested source could not be found.', + 'class' => 'SourceNotFoundException', + ), + ), + ), + 'RemoveTagsFromResource' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'EmptyOutput', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'RemoveTagsFromResource', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2014-10-31', + ), + 'ResourceName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'TagKeys' => array( + 'required' => true, + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'TagKeys.member', + 'items' => array( + 'name' => 'String', + 'type' => 'string', + ), + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'DBInstanceIdentifier does not refer to an existing DB instance.', + 'class' => 'DBInstanceNotFoundException', + ), + array( + 'reason' => 'DBSnapshotIdentifier does not refer to an existing DB snapshot.', + 'class' => 'DBSnapshotNotFoundException', + ), + ), + ), + 'ResetDBParameterGroup' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'DBParameterGroupNameMessage', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'ResetDBParameterGroup', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2014-10-31', + ), + 'DBParameterGroupName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'ResetAllParameters' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'Parameters' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'Parameters.member', + 'items' => array( + 'name' => 'Parameter', + 'type' => 'object', + 'properties' => array( + 'ParameterName' => array( + 'type' => 'string', + ), + 'ParameterValue' => array( + 'type' => 'string', + ), + 'Description' => array( + 'type' => 'string', + ), + 'Source' => array( + 'type' => 'string', + ), + 'ApplyType' => array( + 'type' => 'string', + ), + 'DataType' => array( + 'type' => 'string', + ), + 'AllowedValues' => array( + 'type' => 'string', + ), + 'IsModifiable' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + ), + 'MinimumEngineVersion' => array( + 'type' => 'string', + ), + 'ApplyMethod' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The DB parameter group cannot be deleted because it is in use.', + 'class' => 'InvalidDBParameterGroupStateException', + ), + array( + 'reason' => 'DBParameterGroupName does not refer to an existing DB parameter group.', + 'class' => 'DBParameterGroupNotFoundException', + ), + ), + ), + 'RestoreDBInstanceFromDBSnapshot' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'DBInstanceWrapper', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'RestoreDBInstanceFromDBSnapshot', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2014-10-31', + ), + 'DBInstanceIdentifier' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'DBSnapshotIdentifier' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'DBInstanceClass' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'Port' => array( + 'type' => 'numeric', + 'location' => 'aws.query', + ), + 'AvailabilityZone' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'DBSubnetGroupName' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'MultiAZ' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'PubliclyAccessible' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'AutoMinorVersionUpgrade' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'LicenseModel' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'DBName' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'Engine' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'Iops' => array( + 'type' => 'numeric', + 'location' => 'aws.query', + ), + 'OptionGroupName' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'Tags' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'Tags.member', + 'items' => array( + 'name' => 'Tag', + 'type' => 'object', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + ), + 'Value' => array( + 'type' => 'string', + ), + ), + ), + ), + 'StorageType' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'TdeCredentialArn' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'TdeCredentialPassword' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'User already has a DB instance with the given identifier.', + 'class' => 'DBInstanceAlreadyExistsException', + ), + array( + 'reason' => 'DBSnapshotIdentifier does not refer to an existing DB snapshot.', + 'class' => 'DBSnapshotNotFoundException', + ), + array( + 'reason' => 'Request would result in user exceeding the allowed number of DB instances.', + 'class' => 'InstanceQuotaExceededException', + ), + array( + 'reason' => 'Specified DB instance class is not available in the specified Availability Zone.', + 'class' => 'InsufficientDBInstanceCapacityException', + ), + array( + 'reason' => 'The state of the DB snapshot does not allow deletion.', + 'class' => 'InvalidDBSnapshotStateException', + ), + array( + 'reason' => 'Request would result in user exceeding the allowed amount of storage available across all DB instances.', + 'class' => 'StorageQuotaExceededException', + ), + array( + 'reason' => 'DB subnet group does not cover all Availability Zones after it is created because users\' change.', + 'class' => 'InvalidVPCNetworkStateException', + ), + array( + 'reason' => 'Cannot restore from vpc backup to non-vpc DB instance.', + 'class' => 'InvalidRestoreException', + ), + array( + 'reason' => 'DBSubnetGroupName does not refer to an existing DB subnet group.', + 'class' => 'DBSubnetGroupNotFoundException', + ), + array( + 'reason' => 'Subnets in the DB subnet group should cover at least two Availability Zones unless there is only one Availability Zone.', + 'class' => 'DBSubnetGroupDoesNotCoverEnoughAZsException', + ), + array( + 'reason' => 'The requested subnet is invalid, or multiple subnets were requested that are not all in a common VPC.', + 'class' => 'InvalidSubnetException', + ), + array( + 'reason' => 'Provisioned IOPS not available in the specified Availability Zone.', + 'class' => 'ProvisionedIopsNotAvailableInAZException', + ), + array( + 'reason' => 'The specified option group could not be found.', + 'class' => 'OptionGroupNotFoundException', + ), + array( + 'reason' => 'StorageType specified cannot be associated with the DB Instance.', + 'class' => 'StorageTypeNotSupportedException', + ), + array( + 'reason' => 'Specified CIDRIP or EC2 security group is not authorized for the specified DB security group. RDS may not also be authorized via IAM to perform necessary actions on your behalf.', + 'class' => 'AuthorizationNotFoundException', + ), + array( + 'reason' => 'Error accessing KMS key.', + 'class' => 'KMSKeyNotAccessibleException', + ), + ), + ), + 'RestoreDBInstanceToPointInTime' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'DBInstanceWrapper', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'RestoreDBInstanceToPointInTime', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2014-10-31', + ), + 'SourceDBInstanceIdentifier' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'TargetDBInstanceIdentifier' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'RestoreTime' => array( + 'type' => array( + 'object', + 'string', + 'integer', + ), + 'format' => 'date-time', + 'location' => 'aws.query', + ), + 'UseLatestRestorableTime' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'DBInstanceClass' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'Port' => array( + 'type' => 'numeric', + 'location' => 'aws.query', + ), + 'AvailabilityZone' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'DBSubnetGroupName' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'MultiAZ' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'PubliclyAccessible' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'AutoMinorVersionUpgrade' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'aws.query', + ), + 'LicenseModel' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'DBName' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'Engine' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'Iops' => array( + 'type' => 'numeric', + 'location' => 'aws.query', + ), + 'OptionGroupName' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'Tags' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'Tags.member', + 'items' => array( + 'name' => 'Tag', + 'type' => 'object', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + ), + 'Value' => array( + 'type' => 'string', + ), + ), + ), + ), + 'StorageType' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'TdeCredentialArn' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'TdeCredentialPassword' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'User already has a DB instance with the given identifier.', + 'class' => 'DBInstanceAlreadyExistsException', + ), + array( + 'reason' => 'DBInstanceIdentifier does not refer to an existing DB instance.', + 'class' => 'DBInstanceNotFoundException', + ), + array( + 'reason' => 'Request would result in user exceeding the allowed number of DB instances.', + 'class' => 'InstanceQuotaExceededException', + ), + array( + 'reason' => 'Specified DB instance class is not available in the specified Availability Zone.', + 'class' => 'InsufficientDBInstanceCapacityException', + ), + array( + 'reason' => 'The specified DB instance is not in the available state.', + 'class' => 'InvalidDBInstanceStateException', + ), + array( + 'reason' => 'SourceDBInstanceIdentifier refers to a DB instance with BackupRetentionPeriod equal to 0.', + 'class' => 'PointInTimeRestoreNotEnabledException', + ), + array( + 'reason' => 'Request would result in user exceeding the allowed amount of storage available across all DB instances.', + 'class' => 'StorageQuotaExceededException', + ), + array( + 'reason' => 'DB subnet group does not cover all Availability Zones after it is created because users\' change.', + 'class' => 'InvalidVPCNetworkStateException', + ), + array( + 'reason' => 'Cannot restore from vpc backup to non-vpc DB instance.', + 'class' => 'InvalidRestoreException', + ), + array( + 'reason' => 'DBSubnetGroupName does not refer to an existing DB subnet group.', + 'class' => 'DBSubnetGroupNotFoundException', + ), + array( + 'reason' => 'Subnets in the DB subnet group should cover at least two Availability Zones unless there is only one Availability Zone.', + 'class' => 'DBSubnetGroupDoesNotCoverEnoughAZsException', + ), + array( + 'reason' => 'The requested subnet is invalid, or multiple subnets were requested that are not all in a common VPC.', + 'class' => 'InvalidSubnetException', + ), + array( + 'reason' => 'Provisioned IOPS not available in the specified Availability Zone.', + 'class' => 'ProvisionedIopsNotAvailableInAZException', + ), + array( + 'reason' => 'The specified option group could not be found.', + 'class' => 'OptionGroupNotFoundException', + ), + array( + 'reason' => 'StorageType specified cannot be associated with the DB Instance.', + 'class' => 'StorageTypeNotSupportedException', + ), + array( + 'reason' => 'Specified CIDRIP or EC2 security group is not authorized for the specified DB security group. RDS may not also be authorized via IAM to perform necessary actions on your behalf.', + 'class' => 'AuthorizationNotFoundException', + ), + array( + 'reason' => 'Error accessing KMS key.', + 'class' => 'KMSKeyNotAccessibleException', + ), + ), + ), + 'RevokeDBSecurityGroupIngress' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'DBSecurityGroupWrapper', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'RevokeDBSecurityGroupIngress', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2014-10-31', + ), + 'DBSecurityGroupName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'CIDRIP' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'EC2SecurityGroupName' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'EC2SecurityGroupId' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'EC2SecurityGroupOwnerId' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'DBSecurityGroupName does not refer to an existing DB security group.', + 'class' => 'DBSecurityGroupNotFoundException', + ), + array( + 'reason' => 'Specified CIDRIP or EC2 security group is not authorized for the specified DB security group. RDS may not also be authorized via IAM to perform necessary actions on your behalf.', + 'class' => 'AuthorizationNotFoundException', + ), + array( + 'reason' => 'The state of the DB security group does not allow deletion.', + 'class' => 'InvalidDBSecurityGroupStateException', + ), + ), + ), + ), + 'models' => array( + 'EventSubscriptionWrapper' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'EventSubscription' => array( + 'type' => 'object', + 'location' => 'xml', + 'data' => array( + 'wrapper' => true, + ), + 'properties' => array( + 'CustomerAwsId' => array( + 'type' => 'string', + ), + 'CustSubscriptionId' => array( + 'type' => 'string', + ), + 'SnsTopicArn' => array( + 'type' => 'string', + ), + 'Status' => array( + 'type' => 'string', + ), + 'SubscriptionCreationTime' => array( + 'type' => 'string', + ), + 'SourceType' => array( + 'type' => 'string', + ), + 'SourceIdsList' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'SourceId', + 'type' => 'string', + 'sentAs' => 'SourceId', + ), + ), + 'EventCategoriesList' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'EventCategory', + 'type' => 'string', + 'sentAs' => 'EventCategory', + ), + ), + 'Enabled' => array( + 'type' => 'boolean', + ), + ), + ), + ), + ), + 'EmptyOutput' => array( + 'type' => 'object', + 'additionalProperties' => true, + ), + 'ResourcePendingMaintenanceActionsWrapper' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'ResourcePendingMaintenanceActions' => array( + 'type' => 'object', + 'location' => 'xml', + 'data' => array( + 'wrapper' => true, + ), + 'properties' => array( + 'ResourceIdentifier' => array( + 'type' => 'string', + ), + 'PendingMaintenanceActionDetails' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'PendingMaintenanceAction', + 'type' => 'object', + 'sentAs' => 'PendingMaintenanceAction', + 'properties' => array( + 'Action' => array( + 'type' => 'string', + ), + 'AutoAppliedAfterDate' => array( + 'type' => 'string', + ), + 'ForcedApplyDate' => array( + 'type' => 'string', + ), + 'OptInStatus' => array( + 'type' => 'string', + ), + 'CurrentApplyDate' => array( + 'type' => 'string', + ), + 'Description' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + ), + ), + 'DBSecurityGroupWrapper' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'DBSecurityGroup' => array( + 'type' => 'object', + 'location' => 'xml', + 'data' => array( + 'wrapper' => true, + ), + 'properties' => array( + 'OwnerId' => array( + 'type' => 'string', + ), + 'DBSecurityGroupName' => array( + 'type' => 'string', + ), + 'DBSecurityGroupDescription' => array( + 'type' => 'string', + ), + 'VpcId' => array( + 'type' => 'string', + ), + 'EC2SecurityGroups' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'EC2SecurityGroup', + 'type' => 'object', + 'sentAs' => 'EC2SecurityGroup', + 'properties' => array( + 'Status' => array( + 'type' => 'string', + ), + 'EC2SecurityGroupName' => array( + 'type' => 'string', + ), + 'EC2SecurityGroupId' => array( + 'type' => 'string', + ), + 'EC2SecurityGroupOwnerId' => array( + 'type' => 'string', + ), + ), + ), + ), + 'IPRanges' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'IPRange', + 'type' => 'object', + 'sentAs' => 'IPRange', + 'properties' => array( + 'Status' => array( + 'type' => 'string', + ), + 'CIDRIP' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + ), + ), + 'DBParameterGroupWrapper' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'DBParameterGroup' => array( + 'type' => 'object', + 'location' => 'xml', + 'data' => array( + 'wrapper' => true, + ), + 'properties' => array( + 'DBParameterGroupName' => array( + 'type' => 'string', + ), + 'DBParameterGroupFamily' => array( + 'type' => 'string', + ), + 'Description' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + 'DBSnapshotWrapper' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'DBSnapshot' => array( + 'type' => 'object', + 'location' => 'xml', + 'data' => array( + 'wrapper' => true, + ), + 'properties' => array( + 'DBSnapshotIdentifier' => array( + 'type' => 'string', + ), + 'DBInstanceIdentifier' => array( + 'type' => 'string', + ), + 'SnapshotCreateTime' => array( + 'type' => 'string', + ), + 'Engine' => array( + 'type' => 'string', + ), + 'AllocatedStorage' => array( + 'type' => 'numeric', + ), + 'Status' => array( + 'type' => 'string', + ), + 'Port' => array( + 'type' => 'numeric', + ), + 'AvailabilityZone' => array( + 'type' => 'string', + ), + 'VpcId' => array( + 'type' => 'string', + ), + 'InstanceCreateTime' => array( + 'type' => 'string', + ), + 'MasterUsername' => array( + 'type' => 'string', + ), + 'EngineVersion' => array( + 'type' => 'string', + ), + 'LicenseModel' => array( + 'type' => 'string', + ), + 'SnapshotType' => array( + 'type' => 'string', + ), + 'Iops' => array( + 'type' => 'numeric', + ), + 'OptionGroupName' => array( + 'type' => 'string', + ), + 'PercentProgress' => array( + 'type' => 'numeric', + ), + 'SourceRegion' => array( + 'type' => 'string', + ), + 'StorageType' => array( + 'type' => 'string', + ), + 'TdeCredentialArn' => array( + 'type' => 'string', + ), + 'Encrypted' => array( + 'type' => 'boolean', + ), + 'KmsKeyId' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + 'OptionGroupWrapper' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'OptionGroup' => array( + 'type' => 'object', + 'location' => 'xml', + 'data' => array( + 'wrapper' => true, + ), + 'properties' => array( + 'OptionGroupName' => array( + 'type' => 'string', + ), + 'OptionGroupDescription' => array( + 'type' => 'string', + ), + 'EngineName' => array( + 'type' => 'string', + ), + 'MajorEngineVersion' => array( + 'type' => 'string', + ), + 'Options' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Option', + 'type' => 'object', + 'sentAs' => 'Option', + 'properties' => array( + 'OptionName' => array( + 'type' => 'string', + ), + 'OptionDescription' => array( + 'type' => 'string', + ), + 'Persistent' => array( + 'type' => 'boolean', + ), + 'Permanent' => array( + 'type' => 'boolean', + ), + 'Port' => array( + 'type' => 'numeric', + ), + 'OptionSettings' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'OptionSetting', + 'type' => 'object', + 'sentAs' => 'OptionSetting', + 'properties' => array( + 'Name' => array( + 'type' => 'string', + ), + 'Value' => array( + 'type' => 'string', + ), + 'DefaultValue' => array( + 'type' => 'string', + ), + 'Description' => array( + 'type' => 'string', + ), + 'ApplyType' => array( + 'type' => 'string', + ), + 'DataType' => array( + 'type' => 'string', + ), + 'AllowedValues' => array( + 'type' => 'string', + ), + 'IsModifiable' => array( + 'type' => 'boolean', + ), + 'IsCollection' => array( + 'type' => 'boolean', + ), + ), + ), + ), + 'DBSecurityGroupMemberships' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'DBSecurityGroup', + 'type' => 'object', + 'sentAs' => 'DBSecurityGroup', + 'properties' => array( + 'DBSecurityGroupName' => array( + 'type' => 'string', + ), + 'Status' => array( + 'type' => 'string', + ), + ), + ), + ), + 'VpcSecurityGroupMemberships' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'VpcSecurityGroupMembership', + 'type' => 'object', + 'sentAs' => 'VpcSecurityGroupMembership', + 'properties' => array( + 'VpcSecurityGroupId' => array( + 'type' => 'string', + ), + 'Status' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + ), + 'AllowsVpcAndNonVpcInstanceMemberships' => array( + 'type' => 'boolean', + ), + 'VpcId' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + 'DBInstanceWrapper' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'DBInstance' => array( + 'type' => 'object', + 'location' => 'xml', + 'data' => array( + 'wrapper' => true, + ), + 'properties' => array( + 'DBInstanceIdentifier' => array( + 'type' => 'string', + ), + 'DBInstanceClass' => array( + 'type' => 'string', + ), + 'Engine' => array( + 'type' => 'string', + ), + 'DBInstanceStatus' => array( + 'type' => 'string', + ), + 'MasterUsername' => array( + 'type' => 'string', + ), + 'DBName' => array( + 'type' => 'string', + ), + 'Endpoint' => array( + 'type' => 'object', + 'properties' => array( + 'Address' => array( + 'type' => 'string', + ), + 'Port' => array( + 'type' => 'numeric', + ), + ), + ), + 'AllocatedStorage' => array( + 'type' => 'numeric', + ), + 'InstanceCreateTime' => array( + 'type' => 'string', + ), + 'PreferredBackupWindow' => array( + 'type' => 'string', + ), + 'BackupRetentionPeriod' => array( + 'type' => 'numeric', + ), + 'DBSecurityGroups' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'DBSecurityGroup', + 'type' => 'object', + 'sentAs' => 'DBSecurityGroup', + 'properties' => array( + 'DBSecurityGroupName' => array( + 'type' => 'string', + ), + 'Status' => array( + 'type' => 'string', + ), + ), + ), + ), + 'VpcSecurityGroups' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'VpcSecurityGroupMembership', + 'type' => 'object', + 'sentAs' => 'VpcSecurityGroupMembership', + 'properties' => array( + 'VpcSecurityGroupId' => array( + 'type' => 'string', + ), + 'Status' => array( + 'type' => 'string', + ), + ), + ), + ), + 'DBParameterGroups' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'DBParameterGroup', + 'type' => 'object', + 'sentAs' => 'DBParameterGroup', + 'properties' => array( + 'DBParameterGroupName' => array( + 'type' => 'string', + ), + 'ParameterApplyStatus' => array( + 'type' => 'string', + ), + ), + ), + ), + 'AvailabilityZone' => array( + 'type' => 'string', + ), + 'DBSubnetGroup' => array( + 'type' => 'object', + 'properties' => array( + 'DBSubnetGroupName' => array( + 'type' => 'string', + ), + 'DBSubnetGroupDescription' => array( + 'type' => 'string', + ), + 'VpcId' => array( + 'type' => 'string', + ), + 'SubnetGroupStatus' => array( + 'type' => 'string', + ), + 'Subnets' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Subnet', + 'type' => 'object', + 'sentAs' => 'Subnet', + 'properties' => array( + 'SubnetIdentifier' => array( + 'type' => 'string', + ), + 'SubnetAvailabilityZone' => array( + 'type' => 'object', + 'properties' => array( + 'Name' => array( + 'type' => 'string', + ), + ), + ), + 'SubnetStatus' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + 'PreferredMaintenanceWindow' => array( + 'type' => 'string', + ), + 'PendingModifiedValues' => array( + 'type' => 'object', + 'properties' => array( + 'DBInstanceClass' => array( + 'type' => 'string', + ), + 'AllocatedStorage' => array( + 'type' => 'numeric', + ), + 'MasterUserPassword' => array( + 'type' => 'string', + ), + 'Port' => array( + 'type' => 'numeric', + ), + 'BackupRetentionPeriod' => array( + 'type' => 'numeric', + ), + 'MultiAZ' => array( + 'type' => 'boolean', + ), + 'EngineVersion' => array( + 'type' => 'string', + ), + 'Iops' => array( + 'type' => 'numeric', + ), + 'DBInstanceIdentifier' => array( + 'type' => 'string', + ), + 'StorageType' => array( + 'type' => 'string', + ), + 'CACertificateIdentifier' => array( + 'type' => 'string', + ), + ), + ), + 'LatestRestorableTime' => array( + 'type' => 'string', + ), + 'MultiAZ' => array( + 'type' => 'boolean', + ), + 'EngineVersion' => array( + 'type' => 'string', + ), + 'AutoMinorVersionUpgrade' => array( + 'type' => 'boolean', + ), + 'ReadReplicaSourceDBInstanceIdentifier' => array( + 'type' => 'string', + ), + 'ReadReplicaDBInstanceIdentifiers' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'ReadReplicaDBInstanceIdentifier', + 'type' => 'string', + 'sentAs' => 'ReadReplicaDBInstanceIdentifier', + ), + ), + 'LicenseModel' => array( + 'type' => 'string', + ), + 'Iops' => array( + 'type' => 'numeric', + ), + 'OptionGroupMemberships' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'OptionGroupMembership', + 'type' => 'object', + 'sentAs' => 'OptionGroupMembership', + 'properties' => array( + 'OptionGroupName' => array( + 'type' => 'string', + ), + 'Status' => array( + 'type' => 'string', + ), + ), + ), + ), + 'CharacterSetName' => array( + 'type' => 'string', + ), + 'SecondaryAvailabilityZone' => array( + 'type' => 'string', + ), + 'PubliclyAccessible' => array( + 'type' => 'boolean', + ), + 'StatusInfos' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'DBInstanceStatusInfo', + 'type' => 'object', + 'sentAs' => 'DBInstanceStatusInfo', + 'properties' => array( + 'StatusType' => array( + 'type' => 'string', + ), + 'Normal' => array( + 'type' => 'boolean', + ), + 'Status' => array( + 'type' => 'string', + ), + 'Message' => array( + 'type' => 'string', + ), + ), + ), + ), + 'StorageType' => array( + 'type' => 'string', + ), + 'TdeCredentialArn' => array( + 'type' => 'string', + ), + 'StorageEncrypted' => array( + 'type' => 'boolean', + ), + 'KmsKeyId' => array( + 'type' => 'string', + ), + 'DbiResourceId' => array( + 'type' => 'string', + ), + 'CACertificateIdentifier' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + 'DBSubnetGroupWrapper' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'DBSubnetGroup' => array( + 'type' => 'object', + 'location' => 'xml', + 'data' => array( + 'wrapper' => true, + ), + 'properties' => array( + 'DBSubnetGroupName' => array( + 'type' => 'string', + ), + 'DBSubnetGroupDescription' => array( + 'type' => 'string', + ), + 'VpcId' => array( + 'type' => 'string', + ), + 'SubnetGroupStatus' => array( + 'type' => 'string', + ), + 'Subnets' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Subnet', + 'type' => 'object', + 'sentAs' => 'Subnet', + 'properties' => array( + 'SubnetIdentifier' => array( + 'type' => 'string', + ), + 'SubnetAvailabilityZone' => array( + 'type' => 'object', + 'properties' => array( + 'Name' => array( + 'type' => 'string', + ), + ), + ), + 'SubnetStatus' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + ), + ), + 'AccountAttributesMessage' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'AccountQuotas' => array( + 'type' => 'array', + 'location' => 'xml', + 'items' => array( + 'name' => 'AccountQuota', + 'type' => 'object', + 'sentAs' => 'AccountQuota', + 'properties' => array( + 'AccountQuotaName' => array( + 'type' => 'string', + ), + 'Used' => array( + 'type' => 'numeric', + ), + 'Max' => array( + 'type' => 'numeric', + ), + ), + ), + ), + ), + ), + 'CertificateMessage' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'Certificates' => array( + 'type' => 'array', + 'location' => 'xml', + 'items' => array( + 'name' => 'Certificate', + 'type' => 'object', + 'sentAs' => 'Certificate', + 'properties' => array( + 'CertificateIdentifier' => array( + 'type' => 'string', + ), + 'CertificateType' => array( + 'type' => 'string', + ), + 'Thumbprint' => array( + 'type' => 'string', + ), + 'ValidFrom' => array( + 'type' => 'string', + ), + 'ValidTill' => array( + 'type' => 'string', + ), + ), + ), + ), + 'Marker' => array( + 'type' => 'string', + 'location' => 'xml', + ), + ), + ), + 'DBEngineVersionMessage' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'Marker' => array( + 'type' => 'string', + 'location' => 'xml', + ), + 'DBEngineVersions' => array( + 'type' => 'array', + 'location' => 'xml', + 'items' => array( + 'name' => 'DBEngineVersion', + 'type' => 'object', + 'sentAs' => 'DBEngineVersion', + 'properties' => array( + 'Engine' => array( + 'type' => 'string', + ), + 'EngineVersion' => array( + 'type' => 'string', + ), + 'DBParameterGroupFamily' => array( + 'type' => 'string', + ), + 'DBEngineDescription' => array( + 'type' => 'string', + ), + 'DBEngineVersionDescription' => array( + 'type' => 'string', + ), + 'DefaultCharacterSet' => array( + 'type' => 'object', + 'properties' => array( + 'CharacterSetName' => array( + 'type' => 'string', + ), + 'CharacterSetDescription' => array( + 'type' => 'string', + ), + ), + ), + 'SupportedCharacterSets' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'CharacterSet', + 'type' => 'object', + 'sentAs' => 'CharacterSet', + 'properties' => array( + 'CharacterSetName' => array( + 'type' => 'string', + ), + 'CharacterSetDescription' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + ), + ), + ), + 'DBInstanceMessage' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'Marker' => array( + 'type' => 'string', + 'location' => 'xml', + ), + 'DBInstances' => array( + 'type' => 'array', + 'location' => 'xml', + 'items' => array( + 'name' => 'DBInstance', + 'type' => 'object', + 'sentAs' => 'DBInstance', + 'properties' => array( + 'DBInstanceIdentifier' => array( + 'type' => 'string', + ), + 'DBInstanceClass' => array( + 'type' => 'string', + ), + 'Engine' => array( + 'type' => 'string', + ), + 'DBInstanceStatus' => array( + 'type' => 'string', + ), + 'MasterUsername' => array( + 'type' => 'string', + ), + 'DBName' => array( + 'type' => 'string', + ), + 'Endpoint' => array( + 'type' => 'object', + 'properties' => array( + 'Address' => array( + 'type' => 'string', + ), + 'Port' => array( + 'type' => 'numeric', + ), + ), + ), + 'AllocatedStorage' => array( + 'type' => 'numeric', + ), + 'InstanceCreateTime' => array( + 'type' => 'string', + ), + 'PreferredBackupWindow' => array( + 'type' => 'string', + ), + 'BackupRetentionPeriod' => array( + 'type' => 'numeric', + ), + 'DBSecurityGroups' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'DBSecurityGroup', + 'type' => 'object', + 'sentAs' => 'DBSecurityGroup', + 'properties' => array( + 'DBSecurityGroupName' => array( + 'type' => 'string', + ), + 'Status' => array( + 'type' => 'string', + ), + ), + ), + ), + 'VpcSecurityGroups' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'VpcSecurityGroupMembership', + 'type' => 'object', + 'sentAs' => 'VpcSecurityGroupMembership', + 'properties' => array( + 'VpcSecurityGroupId' => array( + 'type' => 'string', + ), + 'Status' => array( + 'type' => 'string', + ), + ), + ), + ), + 'DBParameterGroups' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'DBParameterGroup', + 'type' => 'object', + 'sentAs' => 'DBParameterGroup', + 'properties' => array( + 'DBParameterGroupName' => array( + 'type' => 'string', + ), + 'ParameterApplyStatus' => array( + 'type' => 'string', + ), + ), + ), + ), + 'AvailabilityZone' => array( + 'type' => 'string', + ), + 'DBSubnetGroup' => array( + 'type' => 'object', + 'properties' => array( + 'DBSubnetGroupName' => array( + 'type' => 'string', + ), + 'DBSubnetGroupDescription' => array( + 'type' => 'string', + ), + 'VpcId' => array( + 'type' => 'string', + ), + 'SubnetGroupStatus' => array( + 'type' => 'string', + ), + 'Subnets' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Subnet', + 'type' => 'object', + 'sentAs' => 'Subnet', + 'properties' => array( + 'SubnetIdentifier' => array( + 'type' => 'string', + ), + 'SubnetAvailabilityZone' => array( + 'type' => 'object', + 'properties' => array( + 'Name' => array( + 'type' => 'string', + ), + ), + ), + 'SubnetStatus' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + 'PreferredMaintenanceWindow' => array( + 'type' => 'string', + ), + 'PendingModifiedValues' => array( + 'type' => 'object', + 'properties' => array( + 'DBInstanceClass' => array( + 'type' => 'string', + ), + 'AllocatedStorage' => array( + 'type' => 'numeric', + ), + 'MasterUserPassword' => array( + 'type' => 'string', + ), + 'Port' => array( + 'type' => 'numeric', + ), + 'BackupRetentionPeriod' => array( + 'type' => 'numeric', + ), + 'MultiAZ' => array( + 'type' => 'boolean', + ), + 'EngineVersion' => array( + 'type' => 'string', + ), + 'Iops' => array( + 'type' => 'numeric', + ), + 'DBInstanceIdentifier' => array( + 'type' => 'string', + ), + 'StorageType' => array( + 'type' => 'string', + ), + 'CACertificateIdentifier' => array( + 'type' => 'string', + ), + ), + ), + 'LatestRestorableTime' => array( + 'type' => 'string', + ), + 'MultiAZ' => array( + 'type' => 'boolean', + ), + 'EngineVersion' => array( + 'type' => 'string', + ), + 'AutoMinorVersionUpgrade' => array( + 'type' => 'boolean', + ), + 'ReadReplicaSourceDBInstanceIdentifier' => array( + 'type' => 'string', + ), + 'ReadReplicaDBInstanceIdentifiers' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'ReadReplicaDBInstanceIdentifier', + 'type' => 'string', + 'sentAs' => 'ReadReplicaDBInstanceIdentifier', + ), + ), + 'LicenseModel' => array( + 'type' => 'string', + ), + 'Iops' => array( + 'type' => 'numeric', + ), + 'OptionGroupMemberships' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'OptionGroupMembership', + 'type' => 'object', + 'sentAs' => 'OptionGroupMembership', + 'properties' => array( + 'OptionGroupName' => array( + 'type' => 'string', + ), + 'Status' => array( + 'type' => 'string', + ), + ), + ), + ), + 'CharacterSetName' => array( + 'type' => 'string', + ), + 'SecondaryAvailabilityZone' => array( + 'type' => 'string', + ), + 'PubliclyAccessible' => array( + 'type' => 'boolean', + ), + 'StatusInfos' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'DBInstanceStatusInfo', + 'type' => 'object', + 'sentAs' => 'DBInstanceStatusInfo', + 'properties' => array( + 'StatusType' => array( + 'type' => 'string', + ), + 'Normal' => array( + 'type' => 'boolean', + ), + 'Status' => array( + 'type' => 'string', + ), + 'Message' => array( + 'type' => 'string', + ), + ), + ), + ), + 'StorageType' => array( + 'type' => 'string', + ), + 'TdeCredentialArn' => array( + 'type' => 'string', + ), + 'StorageEncrypted' => array( + 'type' => 'boolean', + ), + 'KmsKeyId' => array( + 'type' => 'string', + ), + 'DbiResourceId' => array( + 'type' => 'string', + ), + 'CACertificateIdentifier' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + 'DescribeDBLogFilesResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'DescribeDBLogFiles' => array( + 'type' => 'array', + 'location' => 'xml', + 'items' => array( + 'name' => 'DescribeDBLogFilesDetails', + 'type' => 'object', + 'sentAs' => 'DescribeDBLogFilesDetails', + 'properties' => array( + 'LogFileName' => array( + 'type' => 'string', + ), + 'LastWritten' => array( + 'type' => 'numeric', + ), + 'Size' => array( + 'type' => 'numeric', + ), + ), + ), + ), + 'Marker' => array( + 'type' => 'string', + 'location' => 'xml', + ), + ), + ), + 'DBParameterGroupsMessage' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'Marker' => array( + 'type' => 'string', + 'location' => 'xml', + ), + 'DBParameterGroups' => array( + 'type' => 'array', + 'location' => 'xml', + 'items' => array( + 'name' => 'DBParameterGroup', + 'type' => 'object', + 'sentAs' => 'DBParameterGroup', + 'properties' => array( + 'DBParameterGroupName' => array( + 'type' => 'string', + ), + 'DBParameterGroupFamily' => array( + 'type' => 'string', + ), + 'Description' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + 'DBParameterGroupDetails' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'Parameters' => array( + 'type' => 'array', + 'location' => 'xml', + 'items' => array( + 'name' => 'Parameter', + 'type' => 'object', + 'sentAs' => 'Parameter', + 'properties' => array( + 'ParameterName' => array( + 'type' => 'string', + ), + 'ParameterValue' => array( + 'type' => 'string', + ), + 'Description' => array( + 'type' => 'string', + ), + 'Source' => array( + 'type' => 'string', + ), + 'ApplyType' => array( + 'type' => 'string', + ), + 'DataType' => array( + 'type' => 'string', + ), + 'AllowedValues' => array( + 'type' => 'string', + ), + 'IsModifiable' => array( + 'type' => 'boolean', + ), + 'MinimumEngineVersion' => array( + 'type' => 'string', + ), + 'ApplyMethod' => array( + 'type' => 'string', + ), + ), + ), + ), + 'Marker' => array( + 'type' => 'string', + 'location' => 'xml', + ), + ), + ), + 'DBSecurityGroupMessage' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'Marker' => array( + 'type' => 'string', + 'location' => 'xml', + ), + 'DBSecurityGroups' => array( + 'type' => 'array', + 'location' => 'xml', + 'items' => array( + 'name' => 'DBSecurityGroup', + 'type' => 'object', + 'sentAs' => 'DBSecurityGroup', + 'properties' => array( + 'OwnerId' => array( + 'type' => 'string', + ), + 'DBSecurityGroupName' => array( + 'type' => 'string', + ), + 'DBSecurityGroupDescription' => array( + 'type' => 'string', + ), + 'VpcId' => array( + 'type' => 'string', + ), + 'EC2SecurityGroups' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'EC2SecurityGroup', + 'type' => 'object', + 'sentAs' => 'EC2SecurityGroup', + 'properties' => array( + 'Status' => array( + 'type' => 'string', + ), + 'EC2SecurityGroupName' => array( + 'type' => 'string', + ), + 'EC2SecurityGroupId' => array( + 'type' => 'string', + ), + 'EC2SecurityGroupOwnerId' => array( + 'type' => 'string', + ), + ), + ), + ), + 'IPRanges' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'IPRange', + 'type' => 'object', + 'sentAs' => 'IPRange', + 'properties' => array( + 'Status' => array( + 'type' => 'string', + ), + 'CIDRIP' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + ), + ), + ), + 'DBSnapshotMessage' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'Marker' => array( + 'type' => 'string', + 'location' => 'xml', + ), + 'DBSnapshots' => array( + 'type' => 'array', + 'location' => 'xml', + 'items' => array( + 'name' => 'DBSnapshot', + 'type' => 'object', + 'sentAs' => 'DBSnapshot', + 'properties' => array( + 'DBSnapshotIdentifier' => array( + 'type' => 'string', + ), + 'DBInstanceIdentifier' => array( + 'type' => 'string', + ), + 'SnapshotCreateTime' => array( + 'type' => 'string', + ), + 'Engine' => array( + 'type' => 'string', + ), + 'AllocatedStorage' => array( + 'type' => 'numeric', + ), + 'Status' => array( + 'type' => 'string', + ), + 'Port' => array( + 'type' => 'numeric', + ), + 'AvailabilityZone' => array( + 'type' => 'string', + ), + 'VpcId' => array( + 'type' => 'string', + ), + 'InstanceCreateTime' => array( + 'type' => 'string', + ), + 'MasterUsername' => array( + 'type' => 'string', + ), + 'EngineVersion' => array( + 'type' => 'string', + ), + 'LicenseModel' => array( + 'type' => 'string', + ), + 'SnapshotType' => array( + 'type' => 'string', + ), + 'Iops' => array( + 'type' => 'numeric', + ), + 'OptionGroupName' => array( + 'type' => 'string', + ), + 'PercentProgress' => array( + 'type' => 'numeric', + ), + 'SourceRegion' => array( + 'type' => 'string', + ), + 'StorageType' => array( + 'type' => 'string', + ), + 'TdeCredentialArn' => array( + 'type' => 'string', + ), + 'Encrypted' => array( + 'type' => 'boolean', + ), + 'KmsKeyId' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + 'DBSubnetGroupMessage' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'Marker' => array( + 'type' => 'string', + 'location' => 'xml', + ), + 'DBSubnetGroups' => array( + 'type' => 'array', + 'location' => 'xml', + 'items' => array( + 'name' => 'DBSubnetGroup', + 'type' => 'object', + 'sentAs' => 'DBSubnetGroup', + 'properties' => array( + 'DBSubnetGroupName' => array( + 'type' => 'string', + ), + 'DBSubnetGroupDescription' => array( + 'type' => 'string', + ), + 'VpcId' => array( + 'type' => 'string', + ), + 'SubnetGroupStatus' => array( + 'type' => 'string', + ), + 'Subnets' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Subnet', + 'type' => 'object', + 'sentAs' => 'Subnet', + 'properties' => array( + 'SubnetIdentifier' => array( + 'type' => 'string', + ), + 'SubnetAvailabilityZone' => array( + 'type' => 'object', + 'properties' => array( + 'Name' => array( + 'type' => 'string', + ), + ), + ), + 'SubnetStatus' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + ), + ), + ), + 'EngineDefaultsWrapper' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'EngineDefaults' => array( + 'type' => 'object', + 'location' => 'xml', + 'data' => array( + 'wrapper' => true, + ), + 'properties' => array( + 'DBParameterGroupFamily' => array( + 'type' => 'string', + ), + 'Marker' => array( + 'type' => 'string', + ), + 'Parameters' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Parameter', + 'type' => 'object', + 'sentAs' => 'Parameter', + 'properties' => array( + 'ParameterName' => array( + 'type' => 'string', + ), + 'ParameterValue' => array( + 'type' => 'string', + ), + 'Description' => array( + 'type' => 'string', + ), + 'Source' => array( + 'type' => 'string', + ), + 'ApplyType' => array( + 'type' => 'string', + ), + 'DataType' => array( + 'type' => 'string', + ), + 'AllowedValues' => array( + 'type' => 'string', + ), + 'IsModifiable' => array( + 'type' => 'boolean', + ), + 'MinimumEngineVersion' => array( + 'type' => 'string', + ), + 'ApplyMethod' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + ), + ), + 'EventCategoriesMessage' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'EventCategoriesMapList' => array( + 'type' => 'array', + 'location' => 'xml', + 'items' => array( + 'name' => 'EventCategoriesMap', + 'type' => 'object', + 'sentAs' => 'EventCategoriesMap', + 'properties' => array( + 'SourceType' => array( + 'type' => 'string', + ), + 'EventCategories' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'EventCategory', + 'type' => 'string', + 'sentAs' => 'EventCategory', + ), + ), + ), + ), + ), + ), + ), + 'EventSubscriptionsMessage' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'Marker' => array( + 'type' => 'string', + 'location' => 'xml', + ), + 'EventSubscriptionsList' => array( + 'type' => 'array', + 'location' => 'xml', + 'items' => array( + 'name' => 'EventSubscription', + 'type' => 'object', + 'sentAs' => 'EventSubscription', + 'properties' => array( + 'CustomerAwsId' => array( + 'type' => 'string', + ), + 'CustSubscriptionId' => array( + 'type' => 'string', + ), + 'SnsTopicArn' => array( + 'type' => 'string', + ), + 'Status' => array( + 'type' => 'string', + ), + 'SubscriptionCreationTime' => array( + 'type' => 'string', + ), + 'SourceType' => array( + 'type' => 'string', + ), + 'SourceIdsList' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'SourceId', + 'type' => 'string', + 'sentAs' => 'SourceId', + ), + ), + 'EventCategoriesList' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'EventCategory', + 'type' => 'string', + 'sentAs' => 'EventCategory', + ), + ), + 'Enabled' => array( + 'type' => 'boolean', + ), + ), + ), + ), + ), + ), + 'EventsMessage' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'Marker' => array( + 'type' => 'string', + 'location' => 'xml', + ), + 'Events' => array( + 'type' => 'array', + 'location' => 'xml', + 'items' => array( + 'name' => 'Event', + 'type' => 'object', + 'sentAs' => 'Event', + 'properties' => array( + 'SourceIdentifier' => array( + 'type' => 'string', + ), + 'SourceType' => array( + 'type' => 'string', + ), + 'Message' => array( + 'type' => 'string', + ), + 'EventCategories' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'EventCategory', + 'type' => 'string', + 'sentAs' => 'EventCategory', + ), + ), + 'Date' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + 'OptionGroupOptionsMessage' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'OptionGroupOptions' => array( + 'type' => 'array', + 'location' => 'xml', + 'items' => array( + 'name' => 'OptionGroupOption', + 'type' => 'object', + 'sentAs' => 'OptionGroupOption', + 'properties' => array( + 'Name' => array( + 'type' => 'string', + ), + 'Description' => array( + 'type' => 'string', + ), + 'EngineName' => array( + 'type' => 'string', + ), + 'MajorEngineVersion' => array( + 'type' => 'string', + ), + 'MinimumRequiredMinorEngineVersion' => array( + 'type' => 'string', + ), + 'PortRequired' => array( + 'type' => 'boolean', + ), + 'DefaultPort' => array( + 'type' => 'numeric', + ), + 'OptionsDependedOn' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'OptionName', + 'type' => 'string', + 'sentAs' => 'OptionName', + ), + ), + 'Persistent' => array( + 'type' => 'boolean', + ), + 'Permanent' => array( + 'type' => 'boolean', + ), + 'OptionGroupOptionSettings' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'OptionGroupOptionSetting', + 'type' => 'object', + 'sentAs' => 'OptionGroupOptionSetting', + 'properties' => array( + 'SettingName' => array( + 'type' => 'string', + ), + 'SettingDescription' => array( + 'type' => 'string', + ), + 'DefaultValue' => array( + 'type' => 'string', + ), + 'ApplyType' => array( + 'type' => 'string', + ), + 'AllowedValues' => array( + 'type' => 'string', + ), + 'IsModifiable' => array( + 'type' => 'boolean', + ), + ), + ), + ), + ), + ), + ), + 'Marker' => array( + 'type' => 'string', + 'location' => 'xml', + ), + ), + ), + 'OptionGroups' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'OptionGroupsList' => array( + 'type' => 'array', + 'location' => 'xml', + 'items' => array( + 'name' => 'OptionGroup', + 'type' => 'object', + 'sentAs' => 'OptionGroup', + 'properties' => array( + 'OptionGroupName' => array( + 'type' => 'string', + ), + 'OptionGroupDescription' => array( + 'type' => 'string', + ), + 'EngineName' => array( + 'type' => 'string', + ), + 'MajorEngineVersion' => array( + 'type' => 'string', + ), + 'Options' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Option', + 'type' => 'object', + 'sentAs' => 'Option', + 'properties' => array( + 'OptionName' => array( + 'type' => 'string', + ), + 'OptionDescription' => array( + 'type' => 'string', + ), + 'Persistent' => array( + 'type' => 'boolean', + ), + 'Permanent' => array( + 'type' => 'boolean', + ), + 'Port' => array( + 'type' => 'numeric', + ), + 'OptionSettings' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'OptionSetting', + 'type' => 'object', + 'sentAs' => 'OptionSetting', + 'properties' => array( + 'Name' => array( + 'type' => 'string', + ), + 'Value' => array( + 'type' => 'string', + ), + 'DefaultValue' => array( + 'type' => 'string', + ), + 'Description' => array( + 'type' => 'string', + ), + 'ApplyType' => array( + 'type' => 'string', + ), + 'DataType' => array( + 'type' => 'string', + ), + 'AllowedValues' => array( + 'type' => 'string', + ), + 'IsModifiable' => array( + 'type' => 'boolean', + ), + 'IsCollection' => array( + 'type' => 'boolean', + ), + ), + ), + ), + 'DBSecurityGroupMemberships' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'DBSecurityGroup', + 'type' => 'object', + 'sentAs' => 'DBSecurityGroup', + 'properties' => array( + 'DBSecurityGroupName' => array( + 'type' => 'string', + ), + 'Status' => array( + 'type' => 'string', + ), + ), + ), + ), + 'VpcSecurityGroupMemberships' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'VpcSecurityGroupMembership', + 'type' => 'object', + 'sentAs' => 'VpcSecurityGroupMembership', + 'properties' => array( + 'VpcSecurityGroupId' => array( + 'type' => 'string', + ), + 'Status' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + ), + 'AllowsVpcAndNonVpcInstanceMemberships' => array( + 'type' => 'boolean', + ), + 'VpcId' => array( + 'type' => 'string', + ), + ), + ), + ), + 'Marker' => array( + 'type' => 'string', + 'location' => 'xml', + ), + ), + ), + 'OrderableDBInstanceOptionsMessage' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'OrderableDBInstanceOptions' => array( + 'type' => 'array', + 'location' => 'xml', + 'items' => array( + 'name' => 'OrderableDBInstanceOption', + 'type' => 'object', + 'sentAs' => 'OrderableDBInstanceOption', + 'properties' => array( + 'Engine' => array( + 'type' => 'string', + ), + 'EngineVersion' => array( + 'type' => 'string', + ), + 'DBInstanceClass' => array( + 'type' => 'string', + ), + 'LicenseModel' => array( + 'type' => 'string', + ), + 'AvailabilityZones' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'AvailabilityZone', + 'type' => 'object', + 'sentAs' => 'AvailabilityZone', + 'properties' => array( + 'Name' => array( + 'type' => 'string', + ), + ), + ), + ), + 'MultiAZCapable' => array( + 'type' => 'boolean', + ), + 'ReadReplicaCapable' => array( + 'type' => 'boolean', + ), + 'Vpc' => array( + 'type' => 'boolean', + ), + 'SupportsStorageEncryption' => array( + 'type' => 'boolean', + ), + 'StorageType' => array( + 'type' => 'string', + ), + 'SupportsIops' => array( + 'type' => 'boolean', + ), + ), + ), + ), + 'Marker' => array( + 'type' => 'string', + 'location' => 'xml', + ), + ), + ), + 'PendingMaintenanceActionsMessage' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'PendingMaintenanceActions' => array( + 'type' => 'array', + 'location' => 'xml', + 'items' => array( + 'name' => 'ResourcePendingMaintenanceActions', + 'type' => 'object', + 'sentAs' => 'ResourcePendingMaintenanceActions', + 'properties' => array( + 'ResourceIdentifier' => array( + 'type' => 'string', + ), + 'PendingMaintenanceActionDetails' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'PendingMaintenanceAction', + 'type' => 'object', + 'sentAs' => 'PendingMaintenanceAction', + 'properties' => array( + 'Action' => array( + 'type' => 'string', + ), + 'AutoAppliedAfterDate' => array( + 'type' => 'string', + ), + 'ForcedApplyDate' => array( + 'type' => 'string', + ), + 'OptInStatus' => array( + 'type' => 'string', + ), + 'CurrentApplyDate' => array( + 'type' => 'string', + ), + 'Description' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + ), + 'Marker' => array( + 'type' => 'string', + 'location' => 'xml', + ), + ), + ), + 'ReservedDBInstanceMessage' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'Marker' => array( + 'type' => 'string', + 'location' => 'xml', + ), + 'ReservedDBInstances' => array( + 'type' => 'array', + 'location' => 'xml', + 'items' => array( + 'name' => 'ReservedDBInstance', + 'type' => 'object', + 'sentAs' => 'ReservedDBInstance', + 'properties' => array( + 'ReservedDBInstanceId' => array( + 'type' => 'string', + ), + 'ReservedDBInstancesOfferingId' => array( + 'type' => 'string', + ), + 'DBInstanceClass' => array( + 'type' => 'string', + ), + 'StartTime' => array( + 'type' => 'string', + ), + 'Duration' => array( + 'type' => 'numeric', + ), + 'FixedPrice' => array( + 'type' => 'numeric', + ), + 'UsagePrice' => array( + 'type' => 'numeric', + ), + 'CurrencyCode' => array( + 'type' => 'string', + ), + 'DBInstanceCount' => array( + 'type' => 'numeric', + ), + 'ProductDescription' => array( + 'type' => 'string', + ), + 'OfferingType' => array( + 'type' => 'string', + ), + 'MultiAZ' => array( + 'type' => 'boolean', + ), + 'State' => array( + 'type' => 'string', + ), + 'RecurringCharges' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'RecurringCharge', + 'type' => 'object', + 'sentAs' => 'RecurringCharge', + 'properties' => array( + 'RecurringChargeAmount' => array( + 'type' => 'numeric', + ), + 'RecurringChargeFrequency' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + ), + ), + ), + 'ReservedDBInstancesOfferingMessage' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'Marker' => array( + 'type' => 'string', + 'location' => 'xml', + ), + 'ReservedDBInstancesOfferings' => array( + 'type' => 'array', + 'location' => 'xml', + 'items' => array( + 'name' => 'ReservedDBInstancesOffering', + 'type' => 'object', + 'sentAs' => 'ReservedDBInstancesOffering', + 'properties' => array( + 'ReservedDBInstancesOfferingId' => array( + 'type' => 'string', + ), + 'DBInstanceClass' => array( + 'type' => 'string', + ), + 'Duration' => array( + 'type' => 'numeric', + ), + 'FixedPrice' => array( + 'type' => 'numeric', + ), + 'UsagePrice' => array( + 'type' => 'numeric', + ), + 'CurrencyCode' => array( + 'type' => 'string', + ), + 'ProductDescription' => array( + 'type' => 'string', + ), + 'OfferingType' => array( + 'type' => 'string', + ), + 'MultiAZ' => array( + 'type' => 'boolean', + ), + 'RecurringCharges' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'RecurringCharge', + 'type' => 'object', + 'sentAs' => 'RecurringCharge', + 'properties' => array( + 'RecurringChargeAmount' => array( + 'type' => 'numeric', + ), + 'RecurringChargeFrequency' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + ), + ), + ), + 'DownloadDBLogFilePortionDetails' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'LogFileData' => array( + 'type' => 'string', + 'location' => 'xml', + ), + 'Marker' => array( + 'type' => 'string', + 'location' => 'xml', + ), + 'AdditionalDataPending' => array( + 'type' => 'boolean', + 'location' => 'xml', + ), + ), + ), + 'TagListMessage' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'TagList' => array( + 'type' => 'array', + 'location' => 'xml', + 'items' => array( + 'name' => 'Tag', + 'type' => 'object', + 'sentAs' => 'Tag', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + ), + 'Value' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + 'DBParameterGroupNameMessage' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'DBParameterGroupName' => array( + 'type' => 'string', + 'location' => 'xml', + ), + ), + ), + 'ReservedDBInstanceWrapper' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'ReservedDBInstance' => array( + 'type' => 'object', + 'location' => 'xml', + 'data' => array( + 'wrapper' => true, + ), + 'properties' => array( + 'ReservedDBInstanceId' => array( + 'type' => 'string', + ), + 'ReservedDBInstancesOfferingId' => array( + 'type' => 'string', + ), + 'DBInstanceClass' => array( + 'type' => 'string', + ), + 'StartTime' => array( + 'type' => 'string', + ), + 'Duration' => array( + 'type' => 'numeric', + ), + 'FixedPrice' => array( + 'type' => 'numeric', + ), + 'UsagePrice' => array( + 'type' => 'numeric', + ), + 'CurrencyCode' => array( + 'type' => 'string', + ), + 'DBInstanceCount' => array( + 'type' => 'numeric', + ), + 'ProductDescription' => array( + 'type' => 'string', + ), + 'OfferingType' => array( + 'type' => 'string', + ), + 'MultiAZ' => array( + 'type' => 'boolean', + ), + 'State' => array( + 'type' => 'string', + ), + 'RecurringCharges' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'RecurringCharge', + 'type' => 'object', + 'sentAs' => 'RecurringCharge', + 'properties' => array( + 'RecurringChargeAmount' => array( + 'type' => 'numeric', + ), + 'RecurringChargeFrequency' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + ), + ), + ), + 'iterators' => array( + 'DescribeEngineDefaultParameters' => array( + 'output_token' => 'Marker', + 'result_key' => 'Parameters', + ), + ), + 'waiters' => array( + '__default__' => array( + 'interval' => 30, + 'max_attempts' => 60, + ), + '__DBInstanceState' => array( + 'operation' => 'DescribeDBInstances', + 'acceptor.path' => 'DBInstances/*/DBInstanceStatus', + 'acceptor.type' => 'output', + ), + 'DBInstanceAvailable' => array( + 'extends' => '__DBInstanceState', + 'success.value' => 'available', + 'failure.value' => array( + 'deleted', + 'deleting', + 'failed', + 'incompatible-restore', + 'incompatible-parameters', + 'incompatible-parameters', + 'incompatible-restore', + ), + ), + 'DBInstanceDeleted' => array( + 'extends' => '__DBInstanceState', + 'success.value' => 'deleted', + 'failure.value' => array( + 'creating', + 'modifying', + 'rebooting', + 'resetting-master-credentials', + ), + ), + ), +); diff --git a/inc/aws-sdk/Aws/Redshift/Exception/AuthorizationQuotaExceededException.php b/inc/aws-sdk/Aws/Redshift/Exception/AuthorizationQuotaExceededException.php index 77405eb..86ce58c 100755 --- a/inc/aws-sdk/Aws/Redshift/Exception/AuthorizationQuotaExceededException.php +++ b/inc/aws-sdk/Aws/Redshift/Exception/AuthorizationQuotaExceededException.php @@ -17,6 +17,6 @@ namespace Aws\Redshift\Exception; /** - * The authorization quota for the cluster security group has been reached. For information about increasing your quota, go to Limits in Amazon Redshift in the Amazon Redshift Management Guide. + * The authorization quota for the cluster security group has been reached. */ class AuthorizationQuotaExceededException extends RedshiftException {} diff --git a/inc/aws-sdk/Aws/Redshift/Exception/InvalidClusterSecurityGroupStateException.php b/inc/aws-sdk/Aws/Redshift/Exception/InvalidClusterSecurityGroupStateException.php index 17aecca..84d7fea 100755 --- a/inc/aws-sdk/Aws/Redshift/Exception/InvalidClusterSecurityGroupStateException.php +++ b/inc/aws-sdk/Aws/Redshift/Exception/InvalidClusterSecurityGroupStateException.php @@ -17,6 +17,6 @@ namespace Aws\Redshift\Exception; /** - * The state of the cluster security group is not "available". + * The state of the cluster security group is not available. */ class InvalidClusterSecurityGroupStateException extends RedshiftException {} diff --git a/inc/aws-sdk/Aws/Redshift/Exception/InvalidClusterSnapshotStateException.php b/inc/aws-sdk/Aws/Redshift/Exception/InvalidClusterSnapshotStateException.php index d4a8c8f..bda6afe 100755 --- a/inc/aws-sdk/Aws/Redshift/Exception/InvalidClusterSnapshotStateException.php +++ b/inc/aws-sdk/Aws/Redshift/Exception/InvalidClusterSnapshotStateException.php @@ -17,6 +17,6 @@ namespace Aws\Redshift\Exception; /** - * The state of the cluster snapshot is not "available", or other accounts are authorized to access the snapshot. + * The state of the cluster snapshot is not available, or other accounts are authorized to access the snapshot. */ class InvalidClusterSnapshotStateException extends RedshiftException {} diff --git a/inc/aws-sdk/Aws/Redshift/Exception/UnsupportedOptionException.php b/inc/aws-sdk/Aws/Redshift/Exception/UnsupportedOptionException.php index 658787f..6e54d67 100755 --- a/inc/aws-sdk/Aws/Redshift/Exception/UnsupportedOptionException.php +++ b/inc/aws-sdk/Aws/Redshift/Exception/UnsupportedOptionException.php @@ -17,6 +17,6 @@ namespace Aws\Redshift\Exception; /** - * An request option was specified that is not supported. + * A request option was specified that is not supported. */ class UnsupportedOptionException extends RedshiftException {} diff --git a/inc/aws-sdk/Aws/Redshift/RedshiftClient.php b/inc/aws-sdk/Aws/Redshift/RedshiftClient.php index 5672bfa..af513b4 100755 --- a/inc/aws-sdk/Aws/Redshift/RedshiftClient.php +++ b/inc/aws-sdk/Aws/Redshift/RedshiftClient.php @@ -37,6 +37,7 @@ use Guzzle\Service\Resource\ResourceIteratorInterface; * @method Model createEventSubscription(array $args = array()) {@command Redshift CreateEventSubscription} * @method Model createHsmClientCertificate(array $args = array()) {@command Redshift CreateHsmClientCertificate} * @method Model createHsmConfiguration(array $args = array()) {@command Redshift CreateHsmConfiguration} + * @method Model createTags(array $args = array()) {@command Redshift CreateTags} * @method Model deleteCluster(array $args = array()) {@command Redshift DeleteCluster} * @method Model deleteClusterParameterGroup(array $args = array()) {@command Redshift DeleteClusterParameterGroup} * @method Model deleteClusterSecurityGroup(array $args = array()) {@command Redshift DeleteClusterSecurityGroup} @@ -45,6 +46,7 @@ use Guzzle\Service\Resource\ResourceIteratorInterface; * @method Model deleteEventSubscription(array $args = array()) {@command Redshift DeleteEventSubscription} * @method Model deleteHsmClientCertificate(array $args = array()) {@command Redshift DeleteHsmClientCertificate} * @method Model deleteHsmConfiguration(array $args = array()) {@command Redshift DeleteHsmConfiguration} + * @method Model deleteTags(array $args = array()) {@command Redshift DeleteTags} * @method Model describeClusterParameterGroups(array $args = array()) {@command Redshift DescribeClusterParameterGroups} * @method Model describeClusterParameters(array $args = array()) {@command Redshift DescribeClusterParameters} * @method Model describeClusterSecurityGroups(array $args = array()) {@command Redshift DescribeClusterSecurityGroups} @@ -63,6 +65,7 @@ use Guzzle\Service\Resource\ResourceIteratorInterface; * @method Model describeReservedNodeOfferings(array $args = array()) {@command Redshift DescribeReservedNodeOfferings} * @method Model describeReservedNodes(array $args = array()) {@command Redshift DescribeReservedNodes} * @method Model describeResize(array $args = array()) {@command Redshift DescribeResize} + * @method Model describeTags(array $args = array()) {@command Redshift DescribeTags} * @method Model disableLogging(array $args = array()) {@command Redshift DisableLogging} * @method Model disableSnapshotCopy(array $args = array()) {@command Redshift DisableSnapshotCopy} * @method Model enableLogging(array $args = array()) {@command Redshift EnableLogging} @@ -79,9 +82,9 @@ use Guzzle\Service\Resource\ResourceIteratorInterface; * @method Model revokeClusterSecurityGroupIngress(array $args = array()) {@command Redshift RevokeClusterSecurityGroupIngress} * @method Model revokeSnapshotAccess(array $args = array()) {@command Redshift RevokeSnapshotAccess} * @method Model rotateEncryptionKey(array $args = array()) {@command Redshift RotateEncryptionKey} - * @method waitUntilClusterAvailable(array $input) Wait using the ClusterAvailable waiter. The input array uses the parameters of the DescribeClusters operation and waiter specific settings - * @method waitUntilClusterDeleted(array $input) Wait using the ClusterDeleted waiter. The input array uses the parameters of the DescribeClusters operation and waiter specific settings - * @method waitUntilSnapshotAvailable(array $input) Wait using the SnapshotAvailable waiter. The input array uses the parameters of the DescribeClusterSnapshots operation and waiter specific settings + * @method waitUntilClusterAvailable(array $input) The input array uses the parameters of the DescribeClusters operation and waiter specific settings + * @method waitUntilClusterDeleted(array $input) The input array uses the parameters of the DescribeClusters operation and waiter specific settings + * @method waitUntilSnapshotAvailable(array $input) The input array uses the parameters of the DescribeClusterSnapshots operation and waiter specific settings * @method ResourceIteratorInterface getDescribeClusterParameterGroupsIterator(array $args = array()) The input array uses the parameters of the DescribeClusterParameterGroups operation * @method ResourceIteratorInterface getDescribeClusterParametersIterator(array $args = array()) The input array uses the parameters of the DescribeClusterParameters operation * @method ResourceIteratorInterface getDescribeClusterSecurityGroupsIterator(array $args = array()) The input array uses the parameters of the DescribeClusterSecurityGroups operation @@ -98,8 +101,8 @@ use Guzzle\Service\Resource\ResourceIteratorInterface; * @method ResourceIteratorInterface getDescribeReservedNodeOfferingsIterator(array $args = array()) The input array uses the parameters of the DescribeReservedNodeOfferings operation * @method ResourceIteratorInterface getDescribeReservedNodesIterator(array $args = array()) The input array uses the parameters of the DescribeReservedNodes operation * - * @link http://docs.aws.amazon.com/aws-sdk-php/guide/latest/service-redshift.html User guide - * @link http://docs.aws.amazon.com/aws-sdk-php/latest/class-Aws.Redshift.RedshiftClient.html API docs + * @link http://docs.aws.amazon.com/aws-sdk-php/v2/guide/service-redshift.html User guide + * @link http://docs.aws.amazon.com/aws-sdk-php/v2/api/class-Aws.Redshift.RedshiftClient.html API docs */ class RedshiftClient extends AbstractClient { @@ -111,7 +114,7 @@ class RedshiftClient extends AbstractClient * @param array|Collection $config Client configuration data * * @return self - * @see \Aws\Common\Client\DefaultClient for a list of available configuration options + * @link http://docs.aws.amazon.com/aws-sdk-php/v2/guide/configuration.html#client-configuration-options */ public static function factory($config = array()) { diff --git a/inc/aws-sdk/Aws/Redshift/Resources/redshift-2012-12-01.php b/inc/aws-sdk/Aws/Redshift/Resources/redshift-2012-12-01.php index d4fc351..5f2fdb0 100755 --- a/inc/aws-sdk/Aws/Redshift/Resources/redshift-2012-12-01.php +++ b/inc/aws-sdk/Aws/Redshift/Resources/redshift-2012-12-01.php @@ -96,7 +96,7 @@ return array ( 'class' => 'ClusterSecurityGroupNotFoundException', ), array( - 'reason' => 'The state of the cluster security group is not "available".', + 'reason' => 'The state of the cluster security group is not available.', 'class' => 'InvalidClusterSecurityGroupStateException', ), array( @@ -104,7 +104,7 @@ return array ( 'class' => 'AuthorizationAlreadyExistsException', ), array( - 'reason' => 'The authorization quota for the cluster security group has been reached. For information about increasing your quota, go to Limits in Amazon Redshift in the Amazon Redshift Management Guide.', + 'reason' => 'The authorization quota for the cluster security group has been reached.', 'class' => 'AuthorizationQuotaExceededException', ), ), @@ -151,7 +151,7 @@ return array ( 'class' => 'AuthorizationAlreadyExistsException', ), array( - 'reason' => 'The authorization quota for the cluster security group has been reached. For information about increasing your quota, go to Limits in Amazon Redshift in the Amazon Redshift Management Guide.', + 'reason' => 'The authorization quota for the cluster security group has been reached.', 'class' => 'AuthorizationQuotaExceededException', ), ), @@ -198,7 +198,7 @@ return array ( 'class' => 'ClusterSnapshotNotFoundException', ), array( - 'reason' => 'The state of the cluster snapshot is not "available", or other accounts are authorized to access the snapshot.', + 'reason' => 'The state of the cluster snapshot is not available, or other accounts are authorized to access the snapshot.', 'class' => 'InvalidClusterSnapshotStateException', ), array( @@ -329,6 +329,27 @@ return array ( 'type' => 'string', 'location' => 'aws.query', ), + 'Tags' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'Tags.member', + 'items' => array( + 'name' => 'Tag', + 'type' => 'object', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + ), + 'Value' => array( + 'type' => 'string', + ), + ), + ), + ), + 'KmsKeyId' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), ), 'errorResponses' => array( array( @@ -348,11 +369,11 @@ return array ( 'class' => 'ClusterSecurityGroupNotFoundException', ), array( - 'reason' => 'The request would exceed the allowed number of cluster instances for this account. For information about increasing your quota, go to Limits in Amazon Redshift in the Amazon Redshift Management Guide.', + 'reason' => 'The request would exceed the allowed number of cluster instances for this account. For information about increasing your quota, go to Limits in Amazon Redshift in the Amazon Redshift Cluster Management Guide.', 'class' => 'ClusterQuotaExceededException', ), array( - 'reason' => 'The operation would exceed the number of nodes allotted to the account. For information about increasing your quota, go to Limits in Amazon Redshift in the Amazon Redshift Management Guide.', + 'reason' => 'The operation would exceed the number of nodes allotted to the account. For information about increasing your quota, go to Limits in Amazon Redshift in the Amazon Redshift Cluster Management Guide.', 'class' => 'NumberOfNodesQuotaExceededException', ), array( @@ -391,6 +412,14 @@ return array ( 'reason' => 'The Elastic IP (EIP) is invalid or cannot be found.', 'class' => 'InvalidElasticIpException', ), + array( + 'reason' => 'The request exceeds the limit of 10 tags for the resource.', + 'class' => 'TagLimitExceededException', + ), + array( + 'reason' => 'The tag is invalid.', + 'class' => 'InvalidTagException', + ), ), ), 'CreateClusterParameterGroup' => array( @@ -425,16 +454,41 @@ return array ( 'type' => 'string', 'location' => 'aws.query', ), + 'Tags' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'Tags.member', + 'items' => array( + 'name' => 'Tag', + 'type' => 'object', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + ), + 'Value' => array( + 'type' => 'string', + ), + ), + ), + ), ), 'errorResponses' => array( array( - 'reason' => 'The request would result in the user exceeding the allowed number of cluster parameter groups. For information about increasing your quota, go to Limits in Amazon Redshift in the Amazon Redshift Management Guide.', + 'reason' => 'The request would result in the user exceeding the allowed number of cluster parameter groups. For information about increasing your quota, go to Limits in Amazon Redshift in the Amazon Redshift Cluster Management Guide.', 'class' => 'ClusterParameterGroupQuotaExceededException', ), array( 'reason' => 'A cluster parameter group with the same name already exists.', 'class' => 'ClusterParameterGroupAlreadyExistsException', ), + array( + 'reason' => 'The request exceeds the limit of 10 tags for the resource.', + 'class' => 'TagLimitExceededException', + ), + array( + 'reason' => 'The tag is invalid.', + 'class' => 'InvalidTagException', + ), ), ), 'CreateClusterSecurityGroup' => array( @@ -464,6 +518,23 @@ return array ( 'type' => 'string', 'location' => 'aws.query', ), + 'Tags' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'Tags.member', + 'items' => array( + 'name' => 'Tag', + 'type' => 'object', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + ), + 'Value' => array( + 'type' => 'string', + ), + ), + ), + ), ), 'errorResponses' => array( array( @@ -471,9 +542,17 @@ return array ( 'class' => 'ClusterSecurityGroupAlreadyExistsException', ), array( - 'reason' => 'The request would result in the user exceeding the allowed number of cluster security groups. For information about increasing your quota, go to Limits in Amazon Redshift in the Amazon Redshift Management Guide.', + 'reason' => 'The request would result in the user exceeding the allowed number of cluster security groups. For information about increasing your quota, go to Limits in Amazon Redshift in the Amazon Redshift Cluster Management Guide.', 'class' => 'ClusterSecurityGroupQuotaExceededException', ), + array( + 'reason' => 'The request exceeds the limit of 10 tags for the resource.', + 'class' => 'TagLimitExceededException', + ), + array( + 'reason' => 'The tag is invalid.', + 'class' => 'InvalidTagException', + ), ), ), 'CreateClusterSnapshot' => array( @@ -503,6 +582,23 @@ return array ( 'type' => 'string', 'location' => 'aws.query', ), + 'Tags' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'Tags.member', + 'items' => array( + 'name' => 'Tag', + 'type' => 'object', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + ), + 'Value' => array( + 'type' => 'string', + ), + ), + ), + ), ), 'errorResponses' => array( array( @@ -521,6 +617,14 @@ return array ( 'reason' => 'The request would result in the user exceeding the allowed number of cluster snapshots.', 'class' => 'ClusterSnapshotQuotaExceededException', ), + array( + 'reason' => 'The request exceeds the limit of 10 tags for the resource.', + 'class' => 'TagLimitExceededException', + ), + array( + 'reason' => 'The tag is invalid.', + 'class' => 'InvalidTagException', + ), ), ), 'CreateClusterSubnetGroup' => array( @@ -560,6 +664,23 @@ return array ( 'type' => 'string', ), ), + 'Tags' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'Tags.member', + 'items' => array( + 'name' => 'Tag', + 'type' => 'object', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + ), + 'Value' => array( + 'type' => 'string', + ), + ), + ), + ), ), 'errorResponses' => array( array( @@ -567,11 +688,11 @@ return array ( 'class' => 'ClusterSubnetGroupAlreadyExistsException', ), array( - 'reason' => 'The request would result in user exceeding the allowed number of cluster subnet groups. For information about increasing your quota, go to Limits in Amazon Redshift in the Amazon Redshift Management Guide.', + 'reason' => 'The request would result in user exceeding the allowed number of cluster subnet groups. For information about increasing your quota, go to Limits in Amazon Redshift in the Amazon Redshift Cluster Management Guide.', 'class' => 'ClusterSubnetGroupQuotaExceededException', ), array( - 'reason' => 'The request would result in user exceeding the allowed number of subnets in a cluster subnet groups. For information about increasing your quota, go to Limits in Amazon Redshift in the Amazon Redshift Management Guide.', + 'reason' => 'The request would result in user exceeding the allowed number of subnets in a cluster subnet groups. For information about increasing your quota, go to Limits in Amazon Redshift in the Amazon Redshift Cluster Management Guide.', 'class' => 'ClusterSubnetQuotaExceededException', ), array( @@ -582,6 +703,14 @@ return array ( 'reason' => 'Your account is not authorized to perform the requested operation.', 'class' => 'UnauthorizedOperationException', ), + array( + 'reason' => 'The request exceeds the limit of 10 tags for the resource.', + 'class' => 'TagLimitExceededException', + ), + array( + 'reason' => 'The tag is invalid.', + 'class' => 'InvalidTagException', + ), ), ), 'CreateEventSubscription' => array( @@ -642,10 +771,27 @@ return array ( 'format' => 'boolean-string', 'location' => 'aws.query', ), + 'Tags' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'Tags.member', + 'items' => array( + 'name' => 'Tag', + 'type' => 'object', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + ), + 'Value' => array( + 'type' => 'string', + ), + ), + ), + ), ), 'errorResponses' => array( array( - 'reason' => 'The request would exceed the allowed number of event subscriptions for this account. For information about increasing your quota, go to Limits in Amazon Redshift in the Amazon Redshift Management Guide.', + 'reason' => 'The request would exceed the allowed number of event subscriptions for this account. For information about increasing your quota, go to Limits in Amazon Redshift in the Amazon Redshift Cluster Management Guide.', 'class' => 'EventSubscriptionQuotaExceededException', ), array( @@ -680,6 +826,14 @@ return array ( 'reason' => 'The specified Amazon Redshift event source could not be found.', 'class' => 'SourceNotFoundException', ), + array( + 'reason' => 'The request exceeds the limit of 10 tags for the resource.', + 'class' => 'TagLimitExceededException', + ), + array( + 'reason' => 'The tag is invalid.', + 'class' => 'InvalidTagException', + ), ), ), 'CreateHsmClientCertificate' => array( @@ -704,6 +858,23 @@ return array ( 'type' => 'string', 'location' => 'aws.query', ), + 'Tags' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'Tags.member', + 'items' => array( + 'name' => 'Tag', + 'type' => 'object', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + ), + 'Value' => array( + 'type' => 'string', + ), + ), + ), + ), ), 'errorResponses' => array( array( @@ -711,9 +882,17 @@ return array ( 'class' => 'HsmClientCertificateAlreadyExistsException', ), array( - 'reason' => 'The quota for HSM client certificates has been reached. For information about increasing your quota, go to Limits in Amazon Redshift in the Amazon Redshift Management Guide.', + 'reason' => 'The quota for HSM client certificates has been reached. For information about increasing your quota, go to Limits in Amazon Redshift in the Amazon Redshift Cluster Management Guide.', 'class' => 'HsmClientCertificateQuotaExceededException', ), + array( + 'reason' => 'The request exceeds the limit of 10 tags for the resource.', + 'class' => 'TagLimitExceededException', + ), + array( + 'reason' => 'The tag is invalid.', + 'class' => 'InvalidTagException', + ), ), ), 'CreateHsmConfiguration' => array( @@ -763,6 +942,23 @@ return array ( 'type' => 'string', 'location' => 'aws.query', ), + 'Tags' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'Tags.member', + 'items' => array( + 'name' => 'Tag', + 'type' => 'object', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + ), + 'Value' => array( + 'type' => 'string', + ), + ), + ), + ), ), 'errorResponses' => array( array( @@ -770,9 +966,73 @@ return array ( 'class' => 'HsmConfigurationAlreadyExistsException', ), array( - 'reason' => 'The quota for HSM configurations has been reached. For information about increasing your quota, go to Limits in Amazon Redshift in the Amazon Redshift Management Guide.', + 'reason' => 'The quota for HSM configurations has been reached. For information about increasing your quota, go to Limits in Amazon Redshift in the Amazon Redshift Cluster Management Guide.', 'class' => 'HsmConfigurationQuotaExceededException', ), + array( + 'reason' => 'The request exceeds the limit of 10 tags for the resource.', + 'class' => 'TagLimitExceededException', + ), + array( + 'reason' => 'The tag is invalid.', + 'class' => 'InvalidTagException', + ), + ), + ), + 'CreateTags' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'EmptyOutput', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'CreateTags', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2012-12-01', + ), + 'ResourceName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'Tags' => array( + 'required' => true, + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'Tags.member', + 'items' => array( + 'name' => 'Tag', + 'type' => 'object', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + ), + 'Value' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The request exceeds the limit of 10 tags for the resource.', + 'class' => 'TagLimitExceededException', + ), + array( + 'reason' => 'The resource could not be found.', + 'class' => 'ResourceNotFoundException', + ), + array( + 'reason' => 'The tag is invalid.', + 'class' => 'InvalidTagException', + ), ), ), 'DeleteCluster' => array( @@ -885,7 +1145,7 @@ return array ( ), 'errorResponses' => array( array( - 'reason' => 'The state of the cluster security group is not "available".', + 'reason' => 'The state of the cluster security group is not available.', 'class' => 'InvalidClusterSecurityGroupStateException', ), array( @@ -923,7 +1183,7 @@ return array ( ), 'errorResponses' => array( array( - 'reason' => 'The state of the cluster snapshot is not "available", or other accounts are authorized to access the snapshot.', + 'reason' => 'The state of the cluster snapshot is not available, or other accounts are authorized to access the snapshot.', 'class' => 'InvalidClusterSnapshotStateException', ), array( @@ -998,6 +1258,10 @@ return array ( 'reason' => 'An Amazon Redshift event notification subscription with the specified name does not exist.', 'class' => 'SubscriptionNotFoundException', ), + array( + 'reason' => 'The subscription request is invalid because it is a duplicate request. This subscription request is already in progress.', + 'class' => 'InvalidSubscriptionStateException', + ), ), ), 'DeleteHsmClientCertificate' => array( @@ -1068,6 +1332,46 @@ return array ( ), ), ), + 'DeleteTags' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'EmptyOutput', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DeleteTags', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2012-12-01', + ), + 'ResourceName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + 'TagKeys' => array( + 'required' => true, + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'TagKeys.member', + 'items' => array( + 'name' => 'TagKey', + 'type' => 'string', + ), + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The resource could not be found.', + 'class' => 'ResourceNotFoundException', + ), + ), + ), 'DescribeClusterParameterGroups' => array( 'httpMethod' => 'POST', 'uri' => '/', @@ -1097,6 +1401,24 @@ return array ( 'type' => 'string', 'location' => 'aws.query', ), + 'TagKeys' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'TagKeys.member', + 'items' => array( + 'name' => 'TagKey', + 'type' => 'string', + ), + ), + 'TagValues' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'TagValues.member', + 'items' => array( + 'name' => 'TagValue', + 'type' => 'string', + ), + ), ), 'errorResponses' => array( array( @@ -1176,6 +1498,24 @@ return array ( 'type' => 'string', 'location' => 'aws.query', ), + 'TagKeys' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'TagKeys.member', + 'items' => array( + 'name' => 'TagKey', + 'type' => 'string', + ), + ), + 'TagValues' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'TagValues.member', + 'items' => array( + 'name' => 'TagValue', + 'type' => 'string', + ), + ), ), 'errorResponses' => array( array( @@ -1243,6 +1583,24 @@ return array ( 'type' => 'string', 'location' => 'aws.query', ), + 'TagKeys' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'TagKeys.member', + 'items' => array( + 'name' => 'TagKey', + 'type' => 'string', + ), + ), + 'TagValues' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'TagValues.member', + 'items' => array( + 'name' => 'TagValue', + 'type' => 'string', + ), + ), ), 'errorResponses' => array( array( @@ -1280,6 +1638,24 @@ return array ( 'type' => 'string', 'location' => 'aws.query', ), + 'TagKeys' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'TagKeys.member', + 'items' => array( + 'name' => 'TagKey', + 'type' => 'string', + ), + ), + 'TagValues' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'TagValues.member', + 'items' => array( + 'name' => 'TagValue', + 'type' => 'string', + ), + ), ), 'errorResponses' => array( array( @@ -1352,6 +1728,24 @@ return array ( 'type' => 'string', 'location' => 'aws.query', ), + 'TagKeys' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'TagKeys.member', + 'items' => array( + 'name' => 'TagKey', + 'type' => 'string', + ), + ), + 'TagValues' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'TagValues.member', + 'items' => array( + 'name' => 'TagValue', + 'type' => 'string', + ), + ), ), 'errorResponses' => array( array( @@ -1476,12 +1870,6 @@ return array ( 'SourceType' => array( 'type' => 'string', 'location' => 'aws.query', - 'enum' => array( - 'cluster', - 'cluster-parameter-group', - 'cluster-security-group', - 'cluster-snapshot', - ), ), 'StartTime' => array( 'type' => array( @@ -1544,6 +1932,24 @@ return array ( 'type' => 'string', 'location' => 'aws.query', ), + 'TagKeys' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'TagKeys.member', + 'items' => array( + 'name' => 'TagKey', + 'type' => 'string', + ), + ), + 'TagValues' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'TagValues.member', + 'items' => array( + 'name' => 'TagValue', + 'type' => 'string', + ), + ), ), 'errorResponses' => array( array( @@ -1581,6 +1987,24 @@ return array ( 'type' => 'string', 'location' => 'aws.query', ), + 'TagKeys' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'TagKeys.member', + 'items' => array( + 'name' => 'TagKey', + 'type' => 'string', + ), + ), + 'TagValues' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'TagValues.member', + 'items' => array( + 'name' => 'TagValue', + 'type' => 'string', + ), + ), ), 'errorResponses' => array( array( @@ -1762,6 +2186,65 @@ return array ( ), ), ), + 'DescribeTags' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'TaggedResourceListMessage', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'DescribeTags', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2012-12-01', + ), + 'ResourceName' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'ResourceType' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'MaxRecords' => array( + 'type' => 'numeric', + 'location' => 'aws.query', + ), + 'Marker' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'TagKeys' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'TagKeys.member', + 'items' => array( + 'name' => 'TagKey', + 'type' => 'string', + ), + ), + 'TagValues' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'TagValues.member', + 'items' => array( + 'name' => 'TagValue', + 'type' => 'string', + ), + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The resource could not be found.', + 'class' => 'ResourceNotFoundException', + ), + ), + ), 'DisableLogging' => array( 'httpMethod' => 'POST', 'uri' => '/', @@ -1824,6 +2307,10 @@ return array ( 'reason' => 'The cluster already has cross-region snapshot copy disabled.', 'class' => 'SnapshotCopyAlreadyDisabledException', ), + array( + 'reason' => 'The specified cluster is not in the available state.', + 'class' => 'InvalidClusterStateException', + ), array( 'reason' => 'Your account is not authorized to perform the requested operation.', 'class' => 'UnauthorizedOperationException', @@ -2033,6 +2520,10 @@ return array ( 'type' => 'string', 'location' => 'aws.query', ), + 'NewClusterIdentifier' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), ), 'errorResponses' => array( array( @@ -2040,7 +2531,7 @@ return array ( 'class' => 'InvalidClusterStateException', ), array( - 'reason' => 'The state of the cluster security group is not "available".', + 'reason' => 'The state of the cluster security group is not available.', 'class' => 'InvalidClusterSecurityGroupStateException', ), array( @@ -2048,7 +2539,7 @@ return array ( 'class' => 'ClusterNotFoundException', ), array( - 'reason' => 'The operation would exceed the number of nodes allotted to the account. For information about increasing your quota, go to Limits in Amazon Redshift in the Amazon Redshift Management Guide.', + 'reason' => 'The operation would exceed the number of nodes allotted to the account. For information about increasing your quota, go to Limits in Amazon Redshift in the Amazon Redshift Cluster Management Guide.', 'class' => 'NumberOfNodesQuotaExceededException', ), array( @@ -2064,7 +2555,7 @@ return array ( 'class' => 'InsufficientClusterCapacityException', ), array( - 'reason' => 'An request option was specified that is not supported.', + 'reason' => 'A request option was specified that is not supported.', 'class' => 'UnsupportedOptionException', ), array( @@ -2079,6 +2570,10 @@ return array ( 'reason' => 'There is no Amazon Redshift HSM configuration with the specified identifier.', 'class' => 'HsmConfigurationNotFoundException', ), + array( + 'reason' => 'The account already has a cluster with the given identifier.', + 'class' => 'ClusterAlreadyExistsException', + ), ), ), 'ModifyClusterParameterGroup' => array( @@ -2195,7 +2690,7 @@ return array ( 'class' => 'ClusterSubnetGroupNotFoundException', ), array( - 'reason' => 'The request would result in user exceeding the allowed number of subnets in a cluster subnet groups. For information about increasing your quota, go to Limits in Amazon Redshift in the Amazon Redshift Management Guide.', + 'reason' => 'The request would result in user exceeding the allowed number of subnets in a cluster subnet groups. For information about increasing your quota, go to Limits in Amazon Redshift in the Amazon Redshift Cluster Management Guide.', 'class' => 'ClusterSubnetQuotaExceededException', ), array( @@ -2303,6 +2798,10 @@ return array ( 'reason' => 'The specified Amazon Redshift event source could not be found.', 'class' => 'SourceNotFoundException', ), + array( + 'reason' => 'The subscription request is invalid because it is a duplicate request. This subscription request is already in progress.', + 'class' => 'InvalidSubscriptionStateException', + ), ), ), 'ModifySnapshotCopyRetentionPeriod' => array( @@ -2346,6 +2845,10 @@ return array ( 'reason' => 'Your account is not authorized to perform the requested operation.', 'class' => 'UnauthorizedOperationException', ), + array( + 'reason' => 'The specified cluster is not in the available state.', + 'class' => 'InvalidClusterStateException', + ), ), ), 'PurchaseReservedNodeOffering' => array( @@ -2385,7 +2888,7 @@ return array ( 'class' => 'ReservedNodeAlreadyExistsException', ), array( - 'reason' => 'Request would exceed the user\'s compute node quota. For information about increasing your quota, go to Limits in Amazon Redshift in the Amazon Redshift Management Guide.', + 'reason' => 'Request would exceed the user\'s compute node quota. For information about increasing your quota, go to Limits in Amazon Redshift in the Amazon Redshift Cluster Management Guide.', 'class' => 'ReservedNodeQuotaExceededException', ), ), @@ -2568,6 +3071,40 @@ return array ( 'type' => 'string', 'location' => 'aws.query', ), + 'ClusterParameterGroupName' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'ClusterSecurityGroups' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'ClusterSecurityGroups.member', + 'items' => array( + 'name' => 'ClusterSecurityGroupName', + 'type' => 'string', + ), + ), + 'VpcSecurityGroupIds' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'VpcSecurityGroupIds.member', + 'items' => array( + 'name' => 'VpcSecurityGroupId', + 'type' => 'string', + ), + ), + 'PreferredMaintenanceWindow' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), + 'AutomatedSnapshotRetentionPeriod' => array( + 'type' => 'numeric', + 'location' => 'aws.query', + ), + 'KmsKeyId' => array( + 'type' => 'string', + 'location' => 'aws.query', + ), ), 'errorResponses' => array( array( @@ -2583,7 +3120,7 @@ return array ( 'class' => 'ClusterSnapshotNotFoundException', ), array( - 'reason' => 'The request would exceed the allowed number of cluster instances for this account. For information about increasing your quota, go to Limits in Amazon Redshift in the Amazon Redshift Management Guide.', + 'reason' => 'The request would exceed the allowed number of cluster instances for this account. For information about increasing your quota, go to Limits in Amazon Redshift in the Amazon Redshift Cluster Management Guide.', 'class' => 'ClusterQuotaExceededException', ), array( @@ -2591,7 +3128,7 @@ return array ( 'class' => 'InsufficientClusterCapacityException', ), array( - 'reason' => 'The state of the cluster snapshot is not "available", or other accounts are authorized to access the snapshot.', + 'reason' => 'The state of the cluster snapshot is not available, or other accounts are authorized to access the snapshot.', 'class' => 'InvalidClusterSnapshotStateException', ), array( @@ -2599,7 +3136,7 @@ return array ( 'class' => 'InvalidRestoreException', ), array( - 'reason' => 'The operation would exceed the number of nodes allotted to the account. For information about increasing your quota, go to Limits in Amazon Redshift in the Amazon Redshift Management Guide.', + 'reason' => 'The operation would exceed the number of nodes allotted to the account. For information about increasing your quota, go to Limits in Amazon Redshift in the Amazon Redshift Cluster Management Guide.', 'class' => 'NumberOfNodesQuotaExceededException', ), array( @@ -2638,6 +3175,14 @@ return array ( 'reason' => 'The Elastic IP (EIP) is invalid or cannot be found.', 'class' => 'InvalidElasticIpException', ), + array( + 'reason' => 'The parameter group name does not refer to an existing parameter group.', + 'class' => 'ClusterParameterGroupNotFoundException', + ), + array( + 'reason' => 'The cluster security group name does not refer to an existing cluster security group.', + 'class' => 'ClusterSecurityGroupNotFoundException', + ), ), ), 'RevokeClusterSecurityGroupIngress' => array( @@ -2685,7 +3230,7 @@ return array ( 'class' => 'AuthorizationNotFoundException', ), array( - 'reason' => 'The state of the cluster security group is not "available".', + 'reason' => 'The state of the cluster security group is not available.', 'class' => 'InvalidClusterSecurityGroupStateException', ), ), @@ -2806,6 +3351,22 @@ return array ( 'EC2SecurityGroupOwnerId' => array( 'type' => 'string', ), + 'Tags' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Tag', + 'type' => 'object', + 'sentAs' => 'Tag', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + ), + 'Value' => array( + 'type' => 'string', + ), + ), + ), + ), ), ), ), @@ -2822,6 +3383,38 @@ return array ( 'CIDRIP' => array( 'type' => 'string', ), + 'Tags' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Tag', + 'type' => 'object', + 'sentAs' => 'Tag', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + ), + 'Value' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + ), + 'Tags' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Tag', + 'type' => 'object', + 'sentAs' => 'Tag', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + ), + 'Value' => array( + 'type' => 'string', + ), ), ), ), @@ -2885,6 +3478,9 @@ return array ( 'Encrypted' => array( 'type' => 'boolean', ), + 'KmsKeyId' => array( + 'type' => 'string', + ), 'EncryptedWithHSM' => array( 'type' => 'boolean', ), @@ -2925,6 +3521,22 @@ return array ( 'SourceRegion' => array( 'type' => 'string', ), + 'Tags' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Tag', + 'type' => 'object', + 'sentAs' => 'Tag', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + ), + 'Value' => array( + 'type' => 'string', + ), + ), + ), + ), ), ), ), @@ -3056,6 +3668,9 @@ return array ( 'AutomatedSnapshotRetentionPeriod' => array( 'type' => 'numeric', ), + 'ClusterIdentifier' => array( + 'type' => 'string', + ), ), ), 'ClusterVersion' => array( @@ -3154,6 +3769,28 @@ return array ( ), ), ), + 'ClusterRevisionNumber' => array( + 'type' => 'string', + ), + 'Tags' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Tag', + 'type' => 'object', + 'sentAs' => 'Tag', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + ), + 'Value' => array( + 'type' => 'string', + ), + ), + ), + ), + 'KmsKeyId' => array( + 'type' => 'string', + ), ), ), ), @@ -3178,6 +3815,22 @@ return array ( 'Description' => array( 'type' => 'string', ), + 'Tags' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Tag', + 'type' => 'object', + 'sentAs' => 'Tag', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + ), + 'Value' => array( + 'type' => 'string', + ), + ), + ), + ), ), ), ), @@ -3229,6 +3882,22 @@ return array ( ), ), ), + 'Tags' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Tag', + 'type' => 'object', + 'sentAs' => 'Tag', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + ), + 'Value' => array( + 'type' => 'string', + ), + ), + ), + ), ), ), ), @@ -3284,6 +3953,22 @@ return array ( 'Enabled' => array( 'type' => 'boolean', ), + 'Tags' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Tag', + 'type' => 'object', + 'sentAs' => 'Tag', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + ), + 'Value' => array( + 'type' => 'string', + ), + ), + ), + ), ), ), ), @@ -3305,6 +3990,22 @@ return array ( 'HsmClientCertificatePublicKey' => array( 'type' => 'string', ), + 'Tags' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Tag', + 'type' => 'object', + 'sentAs' => 'Tag', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + ), + 'Value' => array( + 'type' => 'string', + ), + ), + ), + ), ), ), ), @@ -3332,6 +4033,22 @@ return array ( 'HsmPartitionName' => array( 'type' => 'string', ), + 'Tags' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Tag', + 'type' => 'object', + 'sentAs' => 'Tag', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + ), + 'Value' => array( + 'type' => 'string', + ), + ), + ), + ), ), ), ), @@ -3365,6 +4082,22 @@ return array ( 'Description' => array( 'type' => 'string', ), + 'Tags' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Tag', + 'type' => 'object', + 'sentAs' => 'Tag', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + ), + 'Value' => array( + 'type' => 'string', + ), + ), + ), + ), ), ), ), @@ -3453,6 +4186,22 @@ return array ( 'EC2SecurityGroupOwnerId' => array( 'type' => 'string', ), + 'Tags' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Tag', + 'type' => 'object', + 'sentAs' => 'Tag', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + ), + 'Value' => array( + 'type' => 'string', + ), + ), + ), + ), ), ), ), @@ -3469,6 +4218,38 @@ return array ( 'CIDRIP' => array( 'type' => 'string', ), + 'Tags' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Tag', + 'type' => 'object', + 'sentAs' => 'Tag', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + ), + 'Value' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + ), + 'Tags' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Tag', + 'type' => 'object', + 'sentAs' => 'Tag', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + ), + 'Value' => array( + 'type' => 'string', + ), ), ), ), @@ -3538,6 +4319,9 @@ return array ( 'Encrypted' => array( 'type' => 'boolean', ), + 'KmsKeyId' => array( + 'type' => 'string', + ), 'EncryptedWithHSM' => array( 'type' => 'boolean', ), @@ -3578,6 +4362,22 @@ return array ( 'SourceRegion' => array( 'type' => 'string', ), + 'Tags' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Tag', + 'type' => 'object', + 'sentAs' => 'Tag', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + ), + 'Value' => array( + 'type' => 'string', + ), + ), + ), + ), ), ), ), @@ -3635,6 +4435,22 @@ return array ( ), ), ), + 'Tags' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Tag', + 'type' => 'object', + 'sentAs' => 'Tag', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + ), + 'Value' => array( + 'type' => 'string', + ), + ), + ), + ), ), ), ), @@ -3802,6 +4618,9 @@ return array ( 'AutomatedSnapshotRetentionPeriod' => array( 'type' => 'numeric', ), + 'ClusterIdentifier' => array( + 'type' => 'string', + ), ), ), 'ClusterVersion' => array( @@ -3900,6 +4719,28 @@ return array ( ), ), ), + 'ClusterRevisionNumber' => array( + 'type' => 'string', + ), + 'Tags' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Tag', + 'type' => 'object', + 'sentAs' => 'Tag', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + ), + 'Value' => array( + 'type' => 'string', + ), + ), + ), + ), + 'KmsKeyId' => array( + 'type' => 'string', + ), ), ), ), @@ -4063,6 +4904,22 @@ return array ( 'Enabled' => array( 'type' => 'boolean', ), + 'Tags' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Tag', + 'type' => 'object', + 'sentAs' => 'Tag', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + ), + 'Value' => array( + 'type' => 'string', + ), + ), + ), + ), ), ), ), @@ -4137,6 +4994,22 @@ return array ( 'HsmClientCertificatePublicKey' => array( 'type' => 'string', ), + 'Tags' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Tag', + 'type' => 'object', + 'sentAs' => 'Tag', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + ), + 'Value' => array( + 'type' => 'string', + ), + ), + ), + ), ), ), ), @@ -4170,6 +5043,22 @@ return array ( 'HsmPartitionName' => array( 'type' => 'string', ), + 'Tags' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Tag', + 'type' => 'object', + 'sentAs' => 'Tag', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + ), + 'Value' => array( + 'type' => 'string', + ), + ), + ), + ), ), ), ), @@ -4423,6 +5312,64 @@ return array ( 'sentAs' => 'member', ), ), + 'AvgResizeRateInMegaBytesPerSecond' => array( + 'type' => 'numeric', + 'location' => 'xml', + ), + 'TotalResizeDataInMegaBytes' => array( + 'type' => 'numeric', + 'location' => 'xml', + ), + 'ProgressInMegaBytes' => array( + 'type' => 'numeric', + 'location' => 'xml', + ), + 'ElapsedTimeInSeconds' => array( + 'type' => 'numeric', + 'location' => 'xml', + ), + 'EstimatedTimeToCompletionInSeconds' => array( + 'type' => 'numeric', + 'location' => 'xml', + ), + ), + ), + 'TaggedResourceListMessage' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'TaggedResources' => array( + 'type' => 'array', + 'location' => 'xml', + 'items' => array( + 'name' => 'TaggedResource', + 'type' => 'object', + 'sentAs' => 'TaggedResource', + 'properties' => array( + 'Tag' => array( + 'type' => 'object', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + ), + 'Value' => array( + 'type' => 'string', + ), + ), + ), + 'ResourceName' => array( + 'type' => 'string', + ), + 'ResourceType' => array( + 'type' => 'string', + ), + ), + ), + ), + 'Marker' => array( + 'type' => 'string', + 'location' => 'xml', + ), ), ), 'ClusterParameterGroupNameMessage' => array( @@ -4505,95 +5452,101 @@ return array ( ), ), 'iterators' => array( - 'operations' => array( - 'DescribeClusterParameterGroups' => array( - 'token_param' => 'Marker', - 'token_key' => 'Marker', - 'limit_key' => 'MaxRecords', - 'result_key' => 'ParameterGroups', - ), - 'DescribeClusterParameters' => array( - 'token_param' => 'Marker', - 'token_key' => 'Marker', - 'limit_key' => 'MaxRecords', - 'result_key' => 'Parameters', - ), - 'DescribeClusterSecurityGroups' => array( - 'token_param' => 'Marker', - 'token_key' => 'Marker', - 'limit_key' => 'MaxRecords', - 'result_key' => 'ClusterSecurityGroups', - ), - 'DescribeClusterSnapshots' => array( - 'token_param' => 'Marker', - 'token_key' => 'Marker', - 'limit_key' => 'MaxRecords', - 'result_key' => 'Snapshots', - ), - 'DescribeClusterSubnetGroups' => array( - 'token_param' => 'Marker', - 'token_key' => 'Marker', - 'limit_key' => 'MaxRecords', - 'result_key' => 'ClusterSubnetGroups', - ), - 'DescribeClusterVersions' => array( - 'token_param' => 'Marker', - 'token_key' => 'Marker', - 'limit_key' => 'MaxRecords', - 'result_key' => 'ClusterVersions', - ), - 'DescribeClusters' => array( - 'token_param' => 'Marker', - 'token_key' => 'Marker', - 'limit_key' => 'MaxRecords', - 'result_key' => 'Clusters', - ), - 'DescribeDefaultClusterParameters' => array( - 'token_param' => 'Marker', - 'limit_key' => 'MaxRecords', - ), - 'DescribeEventSubscriptions' => array( - 'token_param' => 'Marker', - 'token_key' => 'Marker', - 'limit_key' => 'MaxRecords', - 'result_key' => 'EventSubscriptionsList', - ), - 'DescribeEvents' => array( - 'token_param' => 'Marker', - 'token_key' => 'Marker', - 'limit_key' => 'MaxRecords', - 'result_key' => 'Events', - ), - 'DescribeHsmClientCertificates' => array( - 'token_param' => 'Marker', - 'token_key' => 'Marker', - 'limit_key' => 'MaxRecords', - 'result_key' => 'HsmClientCertificates', - ), - 'DescribeHsmConfigurations' => array( - 'token_param' => 'Marker', - 'token_key' => 'Marker', - 'limit_key' => 'MaxRecords', - 'result_key' => 'HsmConfigurations', - ), - 'DescribeOrderableClusterOptions' => array( - 'token_param' => 'Marker', - 'token_key' => 'Marker', - 'limit_key' => 'MaxRecords', - 'result_key' => 'OrderableClusterOptions', - ), - 'DescribeReservedNodeOfferings' => array( - 'token_param' => 'Marker', - 'token_key' => 'Marker', - 'limit_key' => 'MaxRecords', - 'result_key' => 'ReservedNodeOfferings', - ), - 'DescribeReservedNodes' => array( - 'token_param' => 'Marker', - 'token_key' => 'Marker', - 'limit_key' => 'MaxRecords', - 'result_key' => 'ReservedNodes', - ), + 'DescribeClusterParameterGroups' => array( + 'input_token' => 'Marker', + 'output_token' => 'Marker', + 'limit_key' => 'MaxRecords', + 'result_key' => 'ParameterGroups', + ), + 'DescribeClusterParameters' => array( + 'input_token' => 'Marker', + 'output_token' => 'Marker', + 'limit_key' => 'MaxRecords', + 'result_key' => 'Parameters', + ), + 'DescribeClusterSecurityGroups' => array( + 'input_token' => 'Marker', + 'output_token' => 'Marker', + 'limit_key' => 'MaxRecords', + 'result_key' => 'ClusterSecurityGroups', + ), + 'DescribeClusterSnapshots' => array( + 'input_token' => 'Marker', + 'output_token' => 'Marker', + 'limit_key' => 'MaxRecords', + 'result_key' => 'Snapshots', + ), + 'DescribeClusterSubnetGroups' => array( + 'input_token' => 'Marker', + 'output_token' => 'Marker', + 'limit_key' => 'MaxRecords', + 'result_key' => 'ClusterSubnetGroups', + ), + 'DescribeClusterVersions' => array( + 'input_token' => 'Marker', + 'output_token' => 'Marker', + 'limit_key' => 'MaxRecords', + 'result_key' => 'ClusterVersions', + ), + 'DescribeClusters' => array( + 'input_token' => 'Marker', + 'output_token' => 'Marker', + 'limit_key' => 'MaxRecords', + 'result_key' => 'Clusters', + ), + 'DescribeDefaultClusterParameters' => array( + 'input_token' => 'Marker', + 'output_token' => 'Marker', + 'limit_key' => 'MaxRecords', + 'result_key' => 'Parameters', + ), + 'DescribeEventSubscriptions' => array( + 'input_token' => 'Marker', + 'output_token' => 'Marker', + 'limit_key' => 'MaxRecords', + 'result_key' => 'EventSubscriptionsList', + ), + 'DescribeEvents' => array( + 'input_token' => 'Marker', + 'output_token' => 'Marker', + 'limit_key' => 'MaxRecords', + 'result_key' => 'Events', + ), + 'DescribeHsmClientCertificates' => array( + 'input_token' => 'Marker', + 'output_token' => 'Marker', + 'limit_key' => 'MaxRecords', + 'result_key' => 'HsmClientCertificates', + ), + 'DescribeHsmConfigurations' => array( + 'input_token' => 'Marker', + 'output_token' => 'Marker', + 'limit_key' => 'MaxRecords', + 'result_key' => 'HsmConfigurations', + ), + 'DescribeOrderableClusterOptions' => array( + 'input_token' => 'Marker', + 'output_token' => 'Marker', + 'limit_key' => 'MaxRecords', + 'result_key' => 'OrderableClusterOptions', + ), + 'DescribeReservedNodeOfferings' => array( + 'input_token' => 'Marker', + 'output_token' => 'Marker', + 'limit_key' => 'MaxRecords', + 'result_key' => 'ReservedNodeOfferings', + ), + 'DescribeReservedNodes' => array( + 'input_token' => 'Marker', + 'output_token' => 'Marker', + 'limit_key' => 'MaxRecords', + 'result_key' => 'ReservedNodes', + ), + 'DescribeTags' => array( + 'input_token' => 'Marker', + 'output_token' => 'Marker', + 'limit_key' => 'MaxRecords', + 'result_key' => 'TaggedResources', ), ), 'waiters' => array( diff --git a/inc/aws-sdk/Aws/Route53/Enum/Action.php b/inc/aws-sdk/Aws/Route53/Enum/Action.php index d31b7ec..42652e5 100755 --- a/inc/aws-sdk/Aws/Route53/Enum/Action.php +++ b/inc/aws-sdk/Aws/Route53/Enum/Action.php @@ -25,4 +25,5 @@ class Action extends Enum { const CREATE = 'CREATE'; const DELETE = 'DELETE'; + const UPSERT = 'UPSERT'; } diff --git a/inc/aws-sdk/Aws/Route53/Enum/HealthCheckType.php b/inc/aws-sdk/Aws/Route53/Enum/HealthCheckType.php index dd381b0..a02a8a5 100755 --- a/inc/aws-sdk/Aws/Route53/Enum/HealthCheckType.php +++ b/inc/aws-sdk/Aws/Route53/Enum/HealthCheckType.php @@ -24,5 +24,8 @@ use Aws\Common\Enum; class HealthCheckType extends Enum { const HTTP = 'HTTP'; + const HTTPS = 'HTTPS'; + const HTTP_STR_MATCH = 'HTTP_STR_MATCH'; + const HTTPS_STR_MATCH = 'HTTPS_STR_MATCH'; const TCP = 'TCP'; } diff --git a/inc/aws-sdk/Aws/Route53/Exception/IncompatibleVersionException.php b/inc/aws-sdk/Aws/Route53/Exception/IncompatibleVersionException.php new file mode 100644 index 0000000..c4f0226 --- /dev/null +++ b/inc/aws-sdk/Aws/Route53/Exception/IncompatibleVersionException.php @@ -0,0 +1,22 @@ + '2013-04-01', + 'endpointPrefix' => 'route53', + 'serviceFullName' => 'Amazon Route 53', + 'serviceAbbreviation' => 'Route 53', + 'serviceType' => 'rest-xml', + 'globalEndpoint' => 'route53.amazonaws.com', + 'signatureVersion' => 'v3https', + 'namespace' => 'Route53', + 'regions' => array( + 'us-east-1' => array( + 'http' => false, + 'https' => true, + 'hostname' => 'route53.amazonaws.com', + ), + 'us-west-1' => array( + 'http' => false, + 'https' => true, + 'hostname' => 'route53.amazonaws.com', + ), + 'us-west-2' => array( + 'http' => false, + 'https' => true, + 'hostname' => 'route53.amazonaws.com', + ), + 'eu-west-1' => array( + 'http' => false, + 'https' => true, + 'hostname' => 'route53.amazonaws.com', + ), + 'ap-northeast-1' => array( + 'http' => false, + 'https' => true, + 'hostname' => 'route53.amazonaws.com', + ), + 'ap-southeast-1' => array( + 'http' => false, + 'https' => true, + 'hostname' => 'route53.amazonaws.com', + ), + 'ap-southeast-2' => array( + 'http' => false, + 'https' => true, + 'hostname' => 'route53.amazonaws.com', + ), + 'sa-east-1' => array( + 'http' => false, + 'https' => true, + 'hostname' => 'route53.amazonaws.com', + ), + ), + 'operations' => array( + 'AssociateVPCWithHostedZone' => array( + 'httpMethod' => 'POST', + 'uri' => '/2013-04-01/hostedzone/{HostedZoneId}/associatevpc', + 'class' => 'Guzzle\\Service\\Command\\OperationCommand', + 'responseClass' => 'AssociateVPCWithHostedZoneResponse', + 'responseType' => 'model', + 'data' => array( + 'xmlRoot' => array( + 'name' => 'AssociateVPCWithHostedZoneRequest', + 'namespaces' => array( + 'https://route53.amazonaws.com/doc/2013-04-01/', + ), + ), + ), + 'parameters' => array( + 'HostedZoneId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'uri', + 'maxLength' => 32, + ), + 'VPC' => array( + 'required' => true, + 'type' => 'object', + 'location' => 'xml', + 'properties' => array( + 'VPCRegion' => array( + 'type' => 'string', + 'minLength' => 1, + 'maxLength' => 64, + ), + 'VPCId' => array( + 'type' => 'string', + 'maxLength' => 1024, + ), + ), + ), + 'Comment' => array( + 'type' => 'string', + 'location' => 'xml', + ), + 'command.expects' => array( + 'static' => true, + 'default' => 'application/xml', + ), + ), + 'errorResponses' => array( + array( + 'class' => 'NoSuchHostedZoneException', + ), + array( + 'reason' => 'The hosted zone you are trying to create for your VPC_ID does not belong to you. Route 53 returns this error when the VPC specified by VPCId does not belong to you.', + 'class' => 'InvalidVPCIdException', + ), + array( + 'reason' => 'Some value specified in the request is invalid or the XML document is malformed.', + 'class' => 'InvalidInputException', + ), + array( + 'reason' => 'The hosted zone you are trying to associate VPC with doesn\'t have any VPC association. Route 53 currently doesn\'t support associate a VPC with a public hosted zone.', + 'class' => 'PublicZoneVPCAssociationException', + ), + array( + 'class' => 'ConflictingDomainExistsException', + ), + ), + ), + 'ChangeResourceRecordSets' => array( + 'httpMethod' => 'POST', + 'uri' => '/2013-04-01/hostedzone/{HostedZoneId}/rrset/', + 'class' => 'Guzzle\\Service\\Command\\OperationCommand', + 'responseClass' => 'ChangeResourceRecordSetsResponse', + 'responseType' => 'model', + 'data' => array( + 'xmlRoot' => array( + 'name' => 'ChangeResourceRecordSetsRequest', + 'namespaces' => array( + 'https://route53.amazonaws.com/doc/2013-04-01/', + ), + ), + ), + 'parameters' => array( + 'HostedZoneId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'uri', + 'maxLength' => 32, + 'filters' => array( + 'Aws\\Route53\\Route53Client::cleanId', + ), + ), + 'ChangeBatch' => array( + 'required' => true, + 'type' => 'object', + 'location' => 'xml', + 'properties' => array( + 'Comment' => array( + 'type' => 'string', + 'maxLength' => 256, + ), + 'Changes' => array( + 'required' => true, + 'type' => 'array', + 'minItems' => 1, + 'items' => array( + 'name' => 'Change', + 'type' => 'object', + 'properties' => array( + 'Action' => array( + 'required' => true, + 'type' => 'string', + ), + 'ResourceRecordSet' => array( + 'required' => true, + 'type' => 'object', + 'properties' => array( + 'Name' => array( + 'required' => true, + 'type' => 'string', + 'maxLength' => 1024, + ), + 'Type' => array( + 'required' => true, + 'type' => 'string', + ), + 'SetIdentifier' => array( + 'type' => 'string', + 'minLength' => 1, + 'maxLength' => 128, + ), + 'Weight' => array( + 'type' => 'numeric', + 'maximum' => 255, + ), + 'Region' => array( + 'type' => 'string', + 'minLength' => 1, + 'maxLength' => 64, + ), + 'GeoLocation' => array( + 'type' => 'object', + 'properties' => array( + 'ContinentCode' => array( + 'type' => 'string', + 'minLength' => 2, + 'maxLength' => 2, + ), + 'CountryCode' => array( + 'type' => 'string', + 'minLength' => 1, + 'maxLength' => 2, + ), + 'SubdivisionCode' => array( + 'type' => 'string', + 'minLength' => 1, + 'maxLength' => 3, + ), + ), + ), + 'Failover' => array( + 'type' => 'string', + ), + 'TTL' => array( + 'type' => 'numeric', + 'maximum' => 2147483647, + ), + 'ResourceRecords' => array( + 'type' => 'array', + 'minItems' => 1, + 'items' => array( + 'name' => 'ResourceRecord', + 'type' => 'object', + 'properties' => array( + 'Value' => array( + 'required' => true, + 'type' => 'string', + 'maxLength' => 4000, + ), + ), + ), + ), + 'AliasTarget' => array( + 'type' => 'object', + 'properties' => array( + 'HostedZoneId' => array( + 'required' => true, + 'type' => 'string', + 'maxLength' => 32, + ), + 'DNSName' => array( + 'required' => true, + 'type' => 'string', + 'maxLength' => 1024, + ), + 'EvaluateTargetHealth' => array( + 'required' => true, + 'type' => 'boolean', + 'format' => 'boolean-string', + ), + ), + ), + 'HealthCheckId' => array( + 'type' => 'string', + 'maxLength' => 64, + ), + ), + ), + ), + ), + ), + ), + ), + 'command.expects' => array( + 'static' => true, + 'default' => 'application/xml', + ), + ), + 'errorResponses' => array( + array( + 'class' => 'NoSuchHostedZoneException', + ), + array( + 'reason' => 'The health check you are trying to get or delete does not exist.', + 'class' => 'NoSuchHealthCheckException', + ), + array( + 'reason' => 'This error contains a list of one or more error messages. Each error message indicates one error in the change batch. For more information, see Example InvalidChangeBatch Errors.', + 'class' => 'InvalidChangeBatchException', + ), + array( + 'reason' => 'Some value specified in the request is invalid or the XML document is malformed.', + 'class' => 'InvalidInputException', + ), + array( + 'reason' => 'The request was rejected because Route 53 was still processing a prior request.', + 'class' => 'PriorRequestNotCompleteException', + ), + ), + ), + 'ChangeTagsForResource' => array( + 'httpMethod' => 'POST', + 'uri' => '/2013-04-01/tags/{ResourceType}/{ResourceId}', + 'class' => 'Guzzle\\Service\\Command\\OperationCommand', + 'responseClass' => 'ChangeTagsForResourceResponse', + 'responseType' => 'model', + 'data' => array( + 'xmlRoot' => array( + 'name' => 'ChangeTagsForResourceRequest', + 'namespaces' => array( + 'https://route53.amazonaws.com/doc/2013-04-01/', + ), + ), + ), + 'parameters' => array( + 'ResourceType' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'uri', + ), + 'ResourceId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'uri', + 'maxLength' => 64, + ), + 'AddTags' => array( + 'type' => 'array', + 'location' => 'xml', + 'minItems' => 1, + 'maxItems' => 10, + 'items' => array( + 'name' => 'Tag', + 'type' => 'object', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + 'maxLength' => 128, + ), + 'Value' => array( + 'type' => 'string', + 'maxLength' => 256, + ), + ), + ), + ), + 'RemoveTagKeys' => array( + 'type' => 'array', + 'location' => 'xml', + 'minItems' => 1, + 'maxItems' => 10, + 'items' => array( + 'name' => 'Key', + 'type' => 'string', + 'maxLength' => 128, + ), + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'Some value specified in the request is invalid or the XML document is malformed.', + 'class' => 'InvalidInputException', + ), + array( + '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', + ), + array( + 'class' => 'ThrottlingException', + ), + ), + ), + 'CreateHealthCheck' => array( + 'httpMethod' => 'POST', + 'uri' => '/2013-04-01/healthcheck', + 'class' => 'Guzzle\\Service\\Command\\OperationCommand', + 'responseClass' => 'CreateHealthCheckResponse', + 'responseType' => 'model', + 'data' => array( + 'xmlRoot' => array( + 'name' => 'CreateHealthCheckRequest', + 'namespaces' => array( + 'https://route53.amazonaws.com/doc/2013-04-01/', + ), + ), + ), + 'parameters' => array( + 'CallerReference' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'xml', + 'minLength' => 1, + 'maxLength' => 64, + ), + 'HealthCheckConfig' => array( + 'required' => true, + 'type' => 'object', + 'location' => 'xml', + 'properties' => array( + 'IPAddress' => array( + 'type' => 'string', + 'maxLength' => 15, + ), + 'Port' => array( + 'type' => 'numeric', + 'minimum' => 1, + 'maximum' => 65535, + ), + 'Type' => array( + 'required' => true, + 'type' => 'string', + ), + 'ResourcePath' => array( + 'type' => 'string', + 'maxLength' => 255, + ), + 'FullyQualifiedDomainName' => array( + 'type' => 'string', + 'maxLength' => 255, + ), + 'SearchString' => array( + 'type' => 'string', + 'maxLength' => 255, + ), + 'RequestInterval' => array( + 'type' => 'numeric', + 'minimum' => 10, + 'maximum' => 30, + ), + 'FailureThreshold' => array( + 'type' => 'numeric', + 'minimum' => 1, + 'maximum' => 10, + ), + ), + ), + 'command.expects' => array( + 'static' => true, + 'default' => 'application/xml', + ), + ), + 'errorResponses' => array( + array( + 'class' => 'TooManyHealthChecksException', + ), + array( + 'reason' => 'The health check you are trying to create already exists. Route 53 returns this error when a health check has already been created with the specified CallerReference.', + 'class' => 'HealthCheckAlreadyExistsException', + ), + array( + 'reason' => 'Some value specified in the request is invalid or the XML document is malformed.', + 'class' => 'InvalidInputException', + ), + ), + ), + 'CreateHostedZone' => array( + 'httpMethod' => 'POST', + 'uri' => '/2013-04-01/hostedzone', + 'class' => 'Guzzle\\Service\\Command\\OperationCommand', + 'responseClass' => 'CreateHostedZoneResponse', + 'responseType' => 'model', + 'data' => array( + 'xmlRoot' => array( + 'name' => 'CreateHostedZoneRequest', + 'namespaces' => array( + 'https://route53.amazonaws.com/doc/2013-04-01/', + ), + ), + ), + 'parameters' => array( + 'Name' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'xml', + 'maxLength' => 1024, + ), + 'VPC' => array( + 'type' => 'object', + 'location' => 'xml', + 'properties' => array( + 'VPCRegion' => array( + 'type' => 'string', + 'minLength' => 1, + 'maxLength' => 64, + ), + 'VPCId' => array( + 'type' => 'string', + 'maxLength' => 1024, + ), + ), + ), + 'CallerReference' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'xml', + 'minLength' => 1, + 'maxLength' => 128, + ), + 'HostedZoneConfig' => array( + 'type' => 'object', + 'location' => 'xml', + 'properties' => array( + 'Comment' => array( + 'type' => 'string', + 'maxLength' => 256, + ), + 'PrivateZone' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + ), + ), + ), + 'DelegationSetId' => array( + 'type' => 'string', + 'location' => 'xml', + 'maxLength' => 32, + ), + 'command.expects' => array( + 'static' => true, + 'default' => 'application/xml', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'This error indicates that the specified domain name is not valid.', + 'class' => 'InvalidDomainNameException', + ), + array( + 'reason' => 'The hosted zone you are trying to create already exists. Route 53 returns this error when a hosted zone has already been created with the specified CallerReference.', + 'class' => 'HostedZoneAlreadyExistsException', + ), + array( + 'reason' => 'This error indicates that you\'ve reached the maximum number of hosted zones that can be created for the current AWS account. You can request an increase to the limit on the Contact Us page.', + 'class' => 'TooManyHostedZonesException', + ), + array( + 'reason' => 'The hosted zone you are trying to create for your VPC_ID does not belong to you. Route 53 returns this error when the VPC specified by VPCId does not belong to you.', + 'class' => 'InvalidVPCIdException', + ), + array( + 'reason' => 'Some value specified in the request is invalid or the XML document is malformed.', + 'class' => 'InvalidInputException', + ), + array( + 'reason' => 'Route 53 allows some duplicate domain names, but there is a maximum number of duplicate names. This error indicates that you have reached that maximum. If you want to create another hosted zone with the same name and Route 53 generates this error, you can request an increase to the limit on the Contact Us page.', + 'class' => 'DelegationSetNotAvailableException', + ), + array( + 'class' => 'ConflictingDomainExistsException', + ), + array( + 'reason' => 'The specified delegation set does not exist.', + 'class' => 'NoSuchDelegationSetException', + ), + array( + 'reason' => 'The specified delegation set has not been marked as reusable.', + 'class' => 'DelegationSetNotReusableException', + ), + ), + ), + 'CreateReusableDelegationSet' => array( + 'httpMethod' => 'POST', + 'uri' => '/2013-04-01/delegationset', + 'class' => 'Guzzle\\Service\\Command\\OperationCommand', + 'responseClass' => 'CreateReusableDelegationSetResponse', + 'responseType' => 'model', + 'data' => array( + 'xmlRoot' => array( + 'name' => 'CreateReusableDelegationSetRequest', + 'namespaces' => array( + 'https://route53.amazonaws.com/doc/2013-04-01/', + ), + ), + ), + 'parameters' => array( + 'CallerReference' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'xml', + 'minLength' => 1, + 'maxLength' => 128, + ), + 'HostedZoneId' => array( + 'type' => 'string', + 'location' => 'xml', + 'maxLength' => 32, + ), + 'command.expects' => array( + 'static' => true, + 'default' => 'application/xml', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'A delegation set with the same owner and caller reference combination has already been created.', + 'class' => 'DelegationSetAlreadyCreatedException', + ), + array( + 'reason' => 'The limits specified for a resource have been exceeded.', + 'class' => 'LimitsExceededException', + ), + array( + 'reason' => 'The specified HostedZone cannot be found.', + 'class' => 'HostedZoneNotFoundException', + ), + array( + 'reason' => 'At least one of the specified arguments is invalid.', + 'class' => 'InvalidArgumentException', + ), + array( + 'reason' => 'Some value specified in the request is invalid or the XML document is malformed.', + 'class' => 'InvalidInputException', + ), + array( + 'reason' => 'Route 53 allows some duplicate domain names, but there is a maximum number of duplicate names. This error indicates that you have reached that maximum. If you want to create another hosted zone with the same name and Route 53 generates this error, you can request an increase to the limit on the Contact Us page.', + 'class' => 'DelegationSetNotAvailableException', + ), + array( + 'reason' => 'The specified delegation set has already been marked as reusable.', + 'class' => 'DelegationSetAlreadyReusableException', + ), + ), + ), + 'DeleteHealthCheck' => array( + 'httpMethod' => 'DELETE', + 'uri' => '/2013-04-01/healthcheck/{HealthCheckId}', + 'class' => 'Guzzle\\Service\\Command\\OperationCommand', + 'responseClass' => 'DeleteHealthCheckResponse', + 'responseType' => 'model', + 'parameters' => array( + 'HealthCheckId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'uri', + 'maxLength' => 64, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The health check you are trying to get or delete does not exist.', + 'class' => 'NoSuchHealthCheckException', + ), + array( + 'reason' => 'There are resource records associated with this health check. Before you can delete the health check, you must disassociate it from the resource record sets.', + 'class' => 'HealthCheckInUseException', + ), + array( + 'reason' => 'Some value specified in the request is invalid or the XML document is malformed.', + 'class' => 'InvalidInputException', + ), + ), + ), + 'DeleteHostedZone' => array( + 'httpMethod' => 'DELETE', + 'uri' => '/2013-04-01/hostedzone/{Id}', + 'class' => 'Guzzle\\Service\\Command\\OperationCommand', + 'responseClass' => 'DeleteHostedZoneResponse', + 'responseType' => 'model', + 'parameters' => array( + 'Id' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'uri', + 'maxLength' => 32, + 'filters' => array( + 'Aws\\Route53\\Route53Client::cleanId', + ), + ), + 'command.expects' => array( + 'static' => true, + 'default' => 'application/xml', + ), + ), + 'errorResponses' => array( + array( + 'class' => 'NoSuchHostedZoneException', + ), + array( + 'reason' => 'The hosted zone contains resource record sets in addition to the default NS and SOA resource record sets. Before you can delete the hosted zone, you must delete the additional resource record sets.', + 'class' => 'HostedZoneNotEmptyException', + ), + array( + 'reason' => 'The request was rejected because Route 53 was still processing a prior request.', + 'class' => 'PriorRequestNotCompleteException', + ), + array( + 'reason' => 'Some value specified in the request is invalid or the XML document is malformed.', + 'class' => 'InvalidInputException', + ), + ), + ), + 'DeleteReusableDelegationSet' => array( + 'httpMethod' => 'DELETE', + 'uri' => '/2013-04-01/delegationset/{Id}', + 'class' => 'Guzzle\\Service\\Command\\OperationCommand', + 'responseClass' => 'DeleteReusableDelegationSetResponse', + 'responseType' => 'model', + 'parameters' => array( + 'Id' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'uri', + 'maxLength' => 32, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The specified delegation set does not exist.', + 'class' => 'NoSuchDelegationSetException', + ), + array( + 'reason' => 'The specified delegation contains associated hosted zones which must be deleted before the reusable delegation set can be deleted.', + 'class' => 'DelegationSetInUseException', + ), + array( + 'reason' => 'The specified delegation set has not been marked as reusable.', + 'class' => 'DelegationSetNotReusableException', + ), + array( + 'reason' => 'Some value specified in the request is invalid or the XML document is malformed.', + 'class' => 'InvalidInputException', + ), + ), + ), + 'DisassociateVPCFromHostedZone' => array( + 'httpMethod' => 'POST', + 'uri' => '/2013-04-01/hostedzone/{HostedZoneId}/disassociatevpc', + 'class' => 'Guzzle\\Service\\Command\\OperationCommand', + 'responseClass' => 'DisassociateVPCFromHostedZoneResponse', + 'responseType' => 'model', + 'data' => array( + 'xmlRoot' => array( + 'name' => 'DisassociateVPCFromHostedZoneRequest', + 'namespaces' => array( + 'https://route53.amazonaws.com/doc/2013-04-01/', + ), + ), + ), + 'parameters' => array( + 'HostedZoneId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'uri', + 'maxLength' => 32, + ), + 'VPC' => array( + 'required' => true, + 'type' => 'object', + 'location' => 'xml', + 'properties' => array( + 'VPCRegion' => array( + 'type' => 'string', + 'minLength' => 1, + 'maxLength' => 64, + ), + 'VPCId' => array( + 'type' => 'string', + 'maxLength' => 1024, + ), + ), + ), + 'Comment' => array( + 'type' => 'string', + 'location' => 'xml', + ), + 'command.expects' => array( + 'static' => true, + 'default' => 'application/xml', + ), + ), + 'errorResponses' => array( + array( + 'class' => 'NoSuchHostedZoneException', + ), + array( + 'reason' => 'The hosted zone you are trying to create for your VPC_ID does not belong to you. Route 53 returns this error when the VPC specified by VPCId does not belong to you.', + 'class' => 'InvalidVPCIdException', + ), + array( + 'reason' => 'The VPC you specified is not currently associated with the hosted zone.', + 'class' => 'VPCAssociationNotFoundException', + ), + array( + 'reason' => 'The VPC you are trying to disassociate from the hosted zone is the last the VPC that is associated with the hosted zone. Route 53 currently doesn\'t support disassociate the last VPC from the hosted zone.', + 'class' => 'LastVPCAssociationException', + ), + array( + 'reason' => 'Some value specified in the request is invalid or the XML document is malformed.', + 'class' => 'InvalidInputException', + ), + ), + ), + 'GetChange' => array( + 'httpMethod' => 'GET', + 'uri' => '/2013-04-01/change/{Id}', + 'class' => 'Guzzle\\Service\\Command\\OperationCommand', + 'responseClass' => 'GetChangeResponse', + 'responseType' => 'model', + 'parameters' => array( + 'Id' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'uri', + 'maxLength' => 32, + 'filters' => array( + 'Aws\\Route53\\Route53Client::cleanId', + ), + ), + 'command.expects' => array( + 'static' => true, + 'default' => 'application/xml', + ), + ), + 'errorResponses' => array( + array( + 'class' => 'NoSuchChangeException', + ), + array( + 'reason' => 'Some value specified in the request is invalid or the XML document is malformed.', + 'class' => 'InvalidInputException', + ), + ), + ), + 'GetCheckerIpRanges' => array( + 'httpMethod' => 'GET', + 'uri' => '/2013-04-01/checkeripranges', + 'class' => 'Guzzle\\Service\\Command\\OperationCommand', + 'responseClass' => 'GetCheckerIpRangesResponse', + 'responseType' => 'model', + 'parameters' => array( + 'command.expects' => array( + 'static' => true, + 'default' => 'application/xml', + ), + ), + ), + 'GetGeoLocation' => array( + 'httpMethod' => 'GET', + 'uri' => '/2013-04-01/geolocation', + 'class' => 'Guzzle\\Service\\Command\\OperationCommand', + 'responseClass' => 'GetGeoLocationResponse', + 'responseType' => 'model', + 'parameters' => array( + 'ContinentCode' => array( + 'type' => 'string', + 'location' => 'query', + 'sentAs' => 'continentcode', + 'minLength' => 2, + 'maxLength' => 2, + ), + 'CountryCode' => array( + 'type' => 'string', + 'location' => 'query', + 'sentAs' => 'countrycode', + 'minLength' => 1, + 'maxLength' => 2, + ), + 'SubdivisionCode' => array( + 'type' => 'string', + 'location' => 'query', + 'sentAs' => 'subdivisioncode', + 'minLength' => 1, + 'maxLength' => 3, + ), + 'command.expects' => array( + 'static' => true, + 'default' => 'application/xml', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The geo location you are trying to get does not exist.', + 'class' => 'NoSuchGeoLocationException', + ), + array( + 'reason' => 'Some value specified in the request is invalid or the XML document is malformed.', + 'class' => 'InvalidInputException', + ), + ), + ), + 'GetHealthCheck' => array( + 'httpMethod' => 'GET', + 'uri' => '/2013-04-01/healthcheck/{HealthCheckId}', + 'class' => 'Guzzle\\Service\\Command\\OperationCommand', + 'responseClass' => 'GetHealthCheckResponse', + 'responseType' => 'model', + 'parameters' => array( + 'HealthCheckId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'uri', + 'maxLength' => 64, + ), + 'command.expects' => array( + 'static' => true, + 'default' => 'application/xml', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The health check you are trying to get or delete does not exist.', + 'class' => 'NoSuchHealthCheckException', + ), + array( + 'reason' => 'Some value specified in the request is invalid or the XML document is malformed.', + 'class' => 'InvalidInputException', + ), + array( + 'reason' => 'The resource you are trying to access is unsupported on this Route 53 endpoint. Please consider using a newer endpoint or a tool that does so.', + 'class' => 'IncompatibleVersionException', + ), + ), + ), + 'GetHealthCheckCount' => array( + 'httpMethod' => 'GET', + 'uri' => '/2013-04-01/healthcheckcount', + 'class' => 'Guzzle\\Service\\Command\\OperationCommand', + 'responseClass' => 'GetHealthCheckCountResponse', + 'responseType' => 'model', + 'parameters' => array( + 'command.expects' => array( + 'static' => true, + 'default' => 'application/xml', + ), + ), + ), + 'GetHealthCheckLastFailureReason' => array( + 'httpMethod' => 'GET', + 'uri' => '/2013-04-01/healthcheck/{HealthCheckId}/lastfailurereason', + 'class' => 'Guzzle\\Service\\Command\\OperationCommand', + 'responseClass' => 'GetHealthCheckLastFailureReasonResponse', + 'responseType' => 'model', + 'parameters' => array( + 'HealthCheckId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'uri', + 'maxLength' => 64, + ), + 'command.expects' => array( + 'static' => true, + 'default' => 'application/xml', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The health check you are trying to get or delete does not exist.', + 'class' => 'NoSuchHealthCheckException', + ), + ), + ), + 'GetHealthCheckStatus' => array( + 'httpMethod' => 'GET', + 'uri' => '/2013-04-01/healthcheck/{HealthCheckId}/status', + 'class' => 'Guzzle\\Service\\Command\\OperationCommand', + 'responseClass' => 'GetHealthCheckStatusResponse', + 'responseType' => 'model', + 'parameters' => array( + 'HealthCheckId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'uri', + 'maxLength' => 64, + ), + 'command.expects' => array( + 'static' => true, + 'default' => 'application/xml', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The health check you are trying to get or delete does not exist.', + 'class' => 'NoSuchHealthCheckException', + ), + ), + ), + 'GetHostedZone' => array( + 'httpMethod' => 'GET', + 'uri' => '/2013-04-01/hostedzone/{Id}', + 'class' => 'Guzzle\\Service\\Command\\OperationCommand', + 'responseClass' => 'GetHostedZoneResponse', + 'responseType' => 'model', + 'parameters' => array( + 'Id' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'uri', + 'maxLength' => 32, + 'filters' => array( + 'Aws\\Route53\\Route53Client::cleanId', + ), + ), + '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', + ), + ), + ), + 'GetHostedZoneCount' => array( + 'httpMethod' => 'GET', + 'uri' => '/2013-04-01/hostedzonecount', + 'class' => 'Guzzle\\Service\\Command\\OperationCommand', + 'responseClass' => 'GetHostedZoneCountResponse', + 'responseType' => 'model', + 'parameters' => array( + 'command.expects' => array( + 'static' => true, + 'default' => 'application/xml', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'Some value specified in the request is invalid or the XML document is malformed.', + 'class' => 'InvalidInputException', + ), + ), + ), + 'GetReusableDelegationSet' => array( + 'httpMethod' => 'GET', + 'uri' => '/2013-04-01/delegationset/{Id}', + 'class' => 'Guzzle\\Service\\Command\\OperationCommand', + 'responseClass' => 'GetReusableDelegationSetResponse', + 'responseType' => 'model', + 'parameters' => array( + 'Id' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'uri', + 'maxLength' => 32, + ), + 'command.expects' => array( + 'static' => true, + 'default' => 'application/xml', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The specified delegation set does not exist.', + 'class' => 'NoSuchDelegationSetException', + ), + array( + 'reason' => 'The specified delegation set has not been marked as reusable.', + 'class' => 'DelegationSetNotReusableException', + ), + array( + 'reason' => 'Some value specified in the request is invalid or the XML document is malformed.', + 'class' => 'InvalidInputException', + ), + ), + ), + 'ListGeoLocations' => array( + 'httpMethod' => 'GET', + 'uri' => '/2013-04-01/geolocations', + 'class' => 'Guzzle\\Service\\Command\\OperationCommand', + 'responseClass' => 'ListGeoLocationsResponse', + 'responseType' => 'model', + 'parameters' => array( + 'StartContinentCode' => array( + 'type' => 'string', + 'location' => 'query', + 'sentAs' => 'startcontinentcode', + 'minLength' => 2, + 'maxLength' => 2, + ), + 'StartCountryCode' => array( + 'type' => 'string', + 'location' => 'query', + 'sentAs' => 'startcountrycode', + 'minLength' => 1, + 'maxLength' => 2, + ), + 'StartSubdivisionCode' => array( + 'type' => 'string', + 'location' => 'query', + 'sentAs' => 'startsubdivisioncode', + 'minLength' => 1, + 'maxLength' => 3, + ), + 'MaxItems' => array( + 'type' => 'string', + 'location' => 'query', + 'sentAs' => 'maxitems', + ), + 'command.expects' => array( + 'static' => true, + 'default' => 'application/xml', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'Some value specified in the request is invalid or the XML document is malformed.', + 'class' => 'InvalidInputException', + ), + ), + ), + 'ListHealthChecks' => array( + 'httpMethod' => 'GET', + 'uri' => '/2013-04-01/healthcheck', + 'class' => 'Guzzle\\Service\\Command\\OperationCommand', + 'responseClass' => 'ListHealthChecksResponse', + 'responseType' => 'model', + 'parameters' => array( + 'Marker' => array( + 'type' => 'string', + 'location' => 'query', + 'sentAs' => 'marker', + 'maxLength' => 64, + ), + 'MaxItems' => array( + 'type' => 'string', + 'location' => 'query', + 'sentAs' => 'maxitems', + ), + 'command.expects' => array( + 'static' => true, + 'default' => 'application/xml', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'Some value specified in the request is invalid or the XML document is malformed.', + 'class' => 'InvalidInputException', + ), + array( + 'reason' => 'The resource you are trying to access is unsupported on this Route 53 endpoint. Please consider using a newer endpoint or a tool that does so.', + 'class' => 'IncompatibleVersionException', + ), + ), + ), + 'ListHostedZones' => array( + 'httpMethod' => 'GET', + 'uri' => '/2013-04-01/hostedzone', + 'class' => 'Guzzle\\Service\\Command\\OperationCommand', + 'responseClass' => 'ListHostedZonesResponse', + 'responseType' => 'model', + 'parameters' => array( + 'Marker' => array( + 'type' => 'string', + 'location' => 'query', + 'sentAs' => 'marker', + 'maxLength' => 64, + ), + 'MaxItems' => array( + 'type' => 'string', + 'location' => 'query', + 'sentAs' => 'maxitems', + ), + 'DelegationSetId' => array( + 'type' => 'string', + 'location' => 'query', + 'sentAs' => 'delegationsetid', + 'maxLength' => 32, + ), + 'command.expects' => array( + 'static' => true, + 'default' => 'application/xml', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'Some value specified in the request is invalid or the XML document is malformed.', + 'class' => 'InvalidInputException', + ), + array( + 'reason' => 'The specified delegation set does not exist.', + 'class' => 'NoSuchDelegationSetException', + ), + array( + 'reason' => 'The specified delegation set has not been marked as reusable.', + 'class' => 'DelegationSetNotReusableException', + ), + ), + ), + 'ListHostedZonesByName' => array( + 'httpMethod' => 'GET', + 'uri' => '/2013-04-01/hostedzonesbyname', + 'class' => 'Guzzle\\Service\\Command\\OperationCommand', + 'responseClass' => 'ListHostedZonesByNameResponse', + 'responseType' => 'model', + 'parameters' => array( + 'DNSName' => array( + 'type' => 'string', + 'location' => 'query', + 'sentAs' => 'dnsname', + 'maxLength' => 1024, + ), + 'HostedZoneId' => array( + 'type' => 'string', + 'location' => 'query', + 'sentAs' => 'hostedzoneid', + 'maxLength' => 32, + ), + 'MaxItems' => array( + 'type' => 'string', + 'location' => 'query', + 'sentAs' => 'maxitems', + ), + 'command.expects' => array( + 'static' => true, + 'default' => 'application/xml', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'Some value specified in the request is invalid or the XML document is malformed.', + 'class' => 'InvalidInputException', + ), + array( + 'reason' => 'This error indicates that the specified domain name is not valid.', + 'class' => 'InvalidDomainNameException', + ), + ), + ), + 'ListResourceRecordSets' => array( + 'httpMethod' => 'GET', + 'uri' => '/2013-04-01/hostedzone/{HostedZoneId}/rrset', + 'class' => 'Guzzle\\Service\\Command\\OperationCommand', + 'responseClass' => 'ListResourceRecordSetsResponse', + 'responseType' => 'model', + 'parameters' => array( + 'HostedZoneId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'uri', + 'maxLength' => 32, + 'filters' => array( + 'Aws\\Route53\\Route53Client::cleanId', + ), + ), + 'StartRecordName' => array( + 'type' => 'string', + 'location' => 'query', + 'sentAs' => 'name', + 'maxLength' => 1024, + ), + 'StartRecordType' => array( + 'type' => 'string', + 'location' => 'query', + 'sentAs' => 'type', + ), + 'StartRecordIdentifier' => array( + 'type' => 'string', + 'location' => 'query', + 'sentAs' => 'identifier', + 'minLength' => 1, + 'maxLength' => 128, + ), + 'MaxItems' => array( + 'type' => 'string', + 'location' => 'query', + 'sentAs' => 'maxitems', + ), + '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', + ), + ), + ), + 'ListReusableDelegationSets' => array( + 'httpMethod' => 'GET', + 'uri' => '/2013-04-01/delegationset', + 'class' => 'Guzzle\\Service\\Command\\OperationCommand', + 'responseClass' => 'ListReusableDelegationSetsResponse', + 'responseType' => 'model', + 'parameters' => array( + 'Marker' => array( + 'type' => 'string', + 'location' => 'query', + 'sentAs' => 'marker', + 'maxLength' => 64, + ), + 'MaxItems' => array( + 'type' => 'string', + 'location' => 'query', + 'sentAs' => 'maxitems', + ), + 'command.expects' => array( + 'static' => true, + 'default' => 'application/xml', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'Some value specified in the request is invalid or the XML document is malformed.', + 'class' => 'InvalidInputException', + ), + ), + ), + 'ListTagsForResource' => array( + 'httpMethod' => 'GET', + 'uri' => '/2013-04-01/tags/{ResourceType}/{ResourceId}', + 'class' => 'Guzzle\\Service\\Command\\OperationCommand', + 'responseClass' => 'ListTagsForResourceResponse', + 'responseType' => 'model', + 'parameters' => array( + 'ResourceType' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'uri', + ), + 'ResourceId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'uri', + 'maxLength' => 64, + ), + 'command.expects' => array( + 'static' => true, + 'default' => 'application/xml', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'Some value specified in the request is invalid or the XML document is malformed.', + 'class' => 'InvalidInputException', + ), + array( + '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', + ), + array( + 'class' => 'ThrottlingException', + ), + ), + ), + 'ListTagsForResources' => array( + 'httpMethod' => 'POST', + 'uri' => '/2013-04-01/tags/{ResourceType}', + 'class' => 'Guzzle\\Service\\Command\\OperationCommand', + 'responseClass' => 'ListTagsForResourcesResponse', + 'responseType' => 'model', + 'data' => array( + 'xmlRoot' => array( + 'name' => 'ListTagsForResourcesRequest', + 'namespaces' => array( + 'https://route53.amazonaws.com/doc/2013-04-01/', + ), + ), + ), + 'parameters' => array( + 'ResourceType' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'uri', + ), + 'ResourceIds' => array( + 'required' => true, + 'type' => 'array', + 'location' => 'xml', + 'minItems' => 1, + 'maxItems' => 10, + 'items' => array( + 'name' => 'ResourceId', + 'type' => 'string', + 'maxLength' => 64, + ), + ), + 'command.expects' => array( + 'static' => true, + 'default' => 'application/xml', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'Some value specified in the request is invalid or the XML document is malformed.', + 'class' => 'InvalidInputException', + ), + array( + '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', + ), + array( + 'class' => 'ThrottlingException', + ), + ), + ), + 'UpdateHealthCheck' => array( + 'httpMethod' => 'POST', + 'uri' => '/2013-04-01/healthcheck/{HealthCheckId}', + 'class' => 'Guzzle\\Service\\Command\\OperationCommand', + 'responseClass' => 'UpdateHealthCheckResponse', + 'responseType' => 'model', + 'data' => array( + 'xmlRoot' => array( + 'name' => 'UpdateHealthCheckRequest', + 'namespaces' => array( + 'https://route53.amazonaws.com/doc/2013-04-01/', + ), + ), + ), + 'parameters' => array( + 'HealthCheckId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'uri', + 'maxLength' => 64, + ), + 'HealthCheckVersion' => array( + 'type' => 'numeric', + 'location' => 'xml', + 'minimum' => 1, + ), + 'IPAddress' => array( + 'type' => 'string', + 'location' => 'xml', + 'maxLength' => 15, + ), + 'Port' => array( + 'type' => 'numeric', + 'location' => 'xml', + 'minimum' => 1, + 'maximum' => 65535, + ), + 'ResourcePath' => array( + 'type' => 'string', + 'location' => 'xml', + 'maxLength' => 255, + ), + 'FullyQualifiedDomainName' => array( + 'type' => 'string', + 'location' => 'xml', + 'maxLength' => 255, + ), + 'SearchString' => array( + 'type' => 'string', + 'location' => 'xml', + 'maxLength' => 255, + ), + 'FailureThreshold' => array( + 'type' => 'numeric', + 'location' => 'xml', + 'minimum' => 1, + 'maximum' => 10, + ), + 'command.expects' => array( + 'static' => true, + 'default' => 'application/xml', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The health check you are trying to get or delete does not exist.', + 'class' => 'NoSuchHealthCheckException', + ), + array( + 'reason' => 'Some value specified in the request is invalid or the XML document is malformed.', + 'class' => 'InvalidInputException', + ), + array( + 'class' => 'HealthCheckVersionMismatchException', + ), + ), + ), + '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( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'ChangeInfo' => array( + 'type' => 'object', + 'location' => 'xml', + 'properties' => array( + 'Id' => array( + 'type' => 'string', + ), + 'Status' => array( + 'type' => 'string', + ), + 'SubmittedAt' => array( + 'type' => 'string', + ), + 'Comment' => array( + 'type' => 'string', + ), + ), + ), + 'RequestId' => array( + 'location' => 'header', + 'sentAs' => 'x-amz-request-id', + ), + ), + ), + 'ChangeResourceRecordSetsResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'ChangeInfo' => array( + 'type' => 'object', + 'location' => 'xml', + 'properties' => array( + 'Id' => array( + 'type' => 'string', + ), + 'Status' => array( + 'type' => 'string', + ), + 'SubmittedAt' => array( + 'type' => 'string', + ), + 'Comment' => array( + 'type' => 'string', + ), + ), + ), + 'RequestId' => array( + 'location' => 'header', + 'sentAs' => 'x-amz-request-id', + ), + ), + ), + 'ChangeTagsForResourceResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'RequestId' => array( + 'location' => 'header', + 'sentAs' => 'x-amz-request-id', + ), + ), + ), + 'CreateHealthCheckResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'HealthCheck' => array( + 'type' => 'object', + 'location' => 'xml', + 'properties' => array( + 'Id' => array( + 'type' => 'string', + ), + 'CallerReference' => array( + 'type' => 'string', + ), + 'HealthCheckConfig' => array( + 'type' => 'object', + 'properties' => array( + 'IPAddress' => array( + 'type' => 'string', + ), + 'Port' => array( + 'type' => 'numeric', + ), + 'Type' => array( + 'type' => 'string', + ), + 'ResourcePath' => array( + 'type' => 'string', + ), + 'FullyQualifiedDomainName' => array( + 'type' => 'string', + ), + 'SearchString' => array( + 'type' => 'string', + ), + 'RequestInterval' => array( + 'type' => 'numeric', + ), + 'FailureThreshold' => array( + 'type' => 'numeric', + ), + ), + ), + 'HealthCheckVersion' => array( + 'type' => 'numeric', + ), + ), + ), + 'Location' => array( + 'type' => 'string', + 'location' => 'header', + ), + 'RequestId' => array( + 'location' => 'header', + 'sentAs' => 'x-amz-request-id', + ), + ), + ), + 'CreateHostedZoneResponse' => 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', + ), + ), + ), + 'ChangeInfo' => array( + 'type' => 'object', + 'location' => 'xml', + 'properties' => array( + 'Id' => array( + 'type' => 'string', + ), + 'Status' => array( + 'type' => 'string', + ), + 'SubmittedAt' => array( + 'type' => 'string', + ), + 'Comment' => array( + 'type' => 'string', + ), + ), + ), + 'DelegationSet' => array( + 'type' => 'object', + 'location' => 'xml', + 'properties' => array( + 'Id' => array( + 'type' => 'string', + ), + 'CallerReference' => array( + 'type' => 'string', + ), + 'NameServers' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'NameServer', + 'type' => 'string', + 'sentAs' => 'NameServer', + ), + ), + ), + ), + 'VPC' => array( + 'type' => 'object', + 'location' => 'xml', + 'properties' => array( + 'VPCRegion' => array( + 'type' => 'string', + ), + 'VPCId' => array( + 'type' => 'string', + ), + ), + ), + 'Location' => array( + 'type' => 'string', + 'location' => 'header', + ), + 'RequestId' => array( + 'location' => 'header', + 'sentAs' => 'x-amz-request-id', + ), + ), + ), + 'CreateReusableDelegationSetResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'DelegationSet' => array( + 'type' => 'object', + 'location' => 'xml', + 'properties' => array( + 'Id' => array( + 'type' => 'string', + ), + 'CallerReference' => array( + 'type' => 'string', + ), + 'NameServers' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'NameServer', + 'type' => 'string', + 'sentAs' => 'NameServer', + ), + ), + ), + ), + 'Location' => array( + 'type' => 'string', + 'location' => 'header', + ), + 'RequestId' => array( + 'location' => 'header', + 'sentAs' => 'x-amz-request-id', + ), + ), + ), + 'DeleteHealthCheckResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'RequestId' => array( + 'location' => 'header', + 'sentAs' => 'x-amz-request-id', + ), + ), + ), + 'DeleteHostedZoneResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'ChangeInfo' => array( + 'type' => 'object', + 'location' => 'xml', + 'properties' => array( + 'Id' => array( + 'type' => 'string', + ), + 'Status' => array( + 'type' => 'string', + ), + 'SubmittedAt' => array( + 'type' => 'string', + ), + 'Comment' => array( + 'type' => 'string', + ), + ), + ), + 'RequestId' => array( + 'location' => 'header', + 'sentAs' => 'x-amz-request-id', + ), + ), + ), + 'DeleteReusableDelegationSetResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'RequestId' => array( + 'location' => 'header', + 'sentAs' => 'x-amz-request-id', + ), + ), + ), + 'DisassociateVPCFromHostedZoneResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'ChangeInfo' => array( + 'type' => 'object', + 'location' => 'xml', + 'properties' => array( + 'Id' => array( + 'type' => 'string', + ), + 'Status' => array( + 'type' => 'string', + ), + 'SubmittedAt' => array( + 'type' => 'string', + ), + 'Comment' => array( + 'type' => 'string', + ), + ), + ), + 'RequestId' => array( + 'location' => 'header', + 'sentAs' => 'x-amz-request-id', + ), + ), + ), + 'GetChangeResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'ChangeInfo' => array( + 'type' => 'object', + 'location' => 'xml', + 'properties' => array( + 'Id' => array( + 'type' => 'string', + ), + 'Status' => array( + 'type' => 'string', + ), + 'SubmittedAt' => array( + 'type' => 'string', + ), + 'Comment' => array( + 'type' => 'string', + ), + ), + ), + 'RequestId' => array( + 'location' => 'header', + 'sentAs' => 'x-amz-request-id', + ), + ), + ), + 'GetCheckerIpRangesResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'CheckerIpRanges' => array( + 'type' => 'array', + 'location' => 'xml', + 'items' => array( + 'name' => 'member', + 'type' => 'string', + 'sentAs' => 'member', + ), + ), + 'RequestId' => array( + 'location' => 'header', + 'sentAs' => 'x-amz-request-id', + ), + ), + ), + 'GetGeoLocationResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'GeoLocationDetails' => array( + 'type' => 'object', + 'location' => 'xml', + 'properties' => array( + 'ContinentCode' => array( + 'type' => 'string', + ), + 'ContinentName' => array( + 'type' => 'string', + ), + 'CountryCode' => array( + 'type' => 'string', + ), + 'CountryName' => array( + 'type' => 'string', + ), + 'SubdivisionCode' => array( + 'type' => 'string', + ), + 'SubdivisionName' => array( + 'type' => 'string', + ), + ), + ), + 'RequestId' => array( + 'location' => 'header', + 'sentAs' => 'x-amz-request-id', + ), + ), + ), + 'GetHealthCheckResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'HealthCheck' => array( + 'type' => 'object', + 'location' => 'xml', + 'properties' => array( + 'Id' => array( + 'type' => 'string', + ), + 'CallerReference' => array( + 'type' => 'string', + ), + 'HealthCheckConfig' => array( + 'type' => 'object', + 'properties' => array( + 'IPAddress' => array( + 'type' => 'string', + ), + 'Port' => array( + 'type' => 'numeric', + ), + 'Type' => array( + 'type' => 'string', + ), + 'ResourcePath' => array( + 'type' => 'string', + ), + 'FullyQualifiedDomainName' => array( + 'type' => 'string', + ), + 'SearchString' => array( + 'type' => 'string', + ), + 'RequestInterval' => array( + 'type' => 'numeric', + ), + 'FailureThreshold' => array( + 'type' => 'numeric', + ), + ), + ), + 'HealthCheckVersion' => array( + 'type' => 'numeric', + ), + ), + ), + 'RequestId' => array( + 'location' => 'header', + 'sentAs' => 'x-amz-request-id', + ), + ), + ), + 'GetHealthCheckCountResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'HealthCheckCount' => array( + 'type' => 'numeric', + 'location' => 'xml', + ), + 'RequestId' => array( + 'location' => 'header', + 'sentAs' => 'x-amz-request-id', + ), + ), + ), + 'GetHealthCheckLastFailureReasonResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'HealthCheckObservations' => array( + 'type' => 'array', + 'location' => 'xml', + 'items' => array( + 'name' => 'HealthCheckObservation', + 'type' => 'object', + 'sentAs' => 'HealthCheckObservation', + 'properties' => array( + 'IPAddress' => array( + 'type' => 'string', + ), + 'StatusReport' => array( + 'type' => 'object', + 'properties' => array( + 'Status' => array( + 'type' => 'string', + ), + 'CheckedTime' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + 'RequestId' => array( + 'location' => 'header', + 'sentAs' => 'x-amz-request-id', + ), + ), + ), + 'GetHealthCheckStatusResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'HealthCheckObservations' => array( + 'type' => 'array', + 'location' => 'xml', + 'items' => array( + 'name' => 'HealthCheckObservation', + 'type' => 'object', + 'sentAs' => 'HealthCheckObservation', + 'properties' => array( + 'IPAddress' => array( + 'type' => 'string', + ), + 'StatusReport' => array( + 'type' => 'object', + 'properties' => array( + 'Status' => array( + 'type' => 'string', + ), + 'CheckedTime' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + 'RequestId' => array( + 'location' => 'header', + 'sentAs' => 'x-amz-request-id', + ), + ), + ), + 'GetHostedZoneResponse' => 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', + ), + ), + ), + 'DelegationSet' => array( + 'type' => 'object', + 'location' => 'xml', + 'properties' => array( + 'Id' => array( + 'type' => 'string', + ), + 'CallerReference' => array( + 'type' => 'string', + ), + 'NameServers' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'NameServer', + 'type' => 'string', + 'sentAs' => 'NameServer', + ), + ), + ), + ), + 'VPCs' => array( + 'type' => 'array', + 'location' => 'xml', + 'items' => array( + 'name' => 'VPC', + 'type' => 'object', + 'sentAs' => 'VPC', + 'properties' => array( + 'VPCRegion' => array( + 'type' => 'string', + ), + 'VPCId' => array( + 'type' => 'string', + ), + ), + ), + ), + 'RequestId' => array( + 'location' => 'header', + 'sentAs' => 'x-amz-request-id', + ), + ), + ), + 'GetHostedZoneCountResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'HostedZoneCount' => array( + 'type' => 'numeric', + 'location' => 'xml', + ), + 'RequestId' => array( + 'location' => 'header', + 'sentAs' => 'x-amz-request-id', + ), + ), + ), + 'GetReusableDelegationSetResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'DelegationSet' => array( + 'type' => 'object', + 'location' => 'xml', + 'properties' => array( + 'Id' => array( + 'type' => 'string', + ), + 'CallerReference' => array( + 'type' => 'string', + ), + 'NameServers' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'NameServer', + 'type' => 'string', + 'sentAs' => 'NameServer', + ), + ), + ), + ), + 'RequestId' => array( + 'location' => 'header', + 'sentAs' => 'x-amz-request-id', + ), + ), + ), + 'ListGeoLocationsResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'GeoLocationDetailsList' => array( + 'type' => 'array', + 'location' => 'xml', + 'items' => array( + 'name' => 'GeoLocationDetails', + 'type' => 'object', + 'sentAs' => 'GeoLocationDetails', + 'properties' => array( + 'ContinentCode' => array( + 'type' => 'string', + ), + 'ContinentName' => array( + 'type' => 'string', + ), + 'CountryCode' => array( + 'type' => 'string', + ), + 'CountryName' => array( + 'type' => 'string', + ), + 'SubdivisionCode' => array( + 'type' => 'string', + ), + 'SubdivisionName' => array( + 'type' => 'string', + ), + ), + ), + ), + 'IsTruncated' => array( + 'type' => 'boolean', + 'location' => 'xml', + ), + 'NextContinentCode' => array( + 'type' => 'string', + 'location' => 'xml', + ), + 'NextCountryCode' => array( + 'type' => 'string', + 'location' => 'xml', + ), + 'NextSubdivisionCode' => array( + 'type' => 'string', + 'location' => 'xml', + ), + 'MaxItems' => array( + 'type' => 'string', + 'location' => 'xml', + ), + 'RequestId' => array( + 'location' => 'header', + 'sentAs' => 'x-amz-request-id', + ), + ), + ), + 'ListHealthChecksResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'HealthChecks' => array( + 'type' => 'array', + 'location' => 'xml', + 'items' => array( + 'name' => 'HealthCheck', + 'type' => 'object', + 'sentAs' => 'HealthCheck', + 'properties' => array( + 'Id' => array( + 'type' => 'string', + ), + 'CallerReference' => array( + 'type' => 'string', + ), + 'HealthCheckConfig' => array( + 'type' => 'object', + 'properties' => array( + 'IPAddress' => array( + 'type' => 'string', + ), + 'Port' => array( + 'type' => 'numeric', + ), + 'Type' => array( + 'type' => 'string', + ), + 'ResourcePath' => array( + 'type' => 'string', + ), + 'FullyQualifiedDomainName' => array( + 'type' => 'string', + ), + 'SearchString' => array( + 'type' => 'string', + ), + 'RequestInterval' => array( + 'type' => 'numeric', + ), + 'FailureThreshold' => array( + 'type' => 'numeric', + ), + ), + ), + 'HealthCheckVersion' => array( + 'type' => 'numeric', + ), + ), + ), + ), + 'Marker' => array( + 'type' => 'string', + 'location' => 'xml', + ), + 'IsTruncated' => array( + 'type' => 'boolean', + 'location' => 'xml', + ), + 'NextMarker' => array( + 'type' => 'string', + 'location' => 'xml', + ), + 'MaxItems' => array( + 'type' => 'string', + 'location' => 'xml', + ), + 'RequestId' => array( + 'location' => 'header', + 'sentAs' => 'x-amz-request-id', + ), + ), + ), + 'ListHostedZonesResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'HostedZones' => array( + 'type' => 'array', + 'location' => 'xml', + 'items' => array( + 'name' => 'HostedZone', + 'type' => 'object', + 'sentAs' => 'HostedZone', + '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', + ), + ), + ), + ), + 'Marker' => array( + 'type' => 'string', + 'location' => 'xml', + ), + 'IsTruncated' => array( + 'type' => 'boolean', + 'location' => 'xml', + ), + 'NextMarker' => array( + 'type' => 'string', + 'location' => 'xml', + ), + 'MaxItems' => array( + 'type' => 'string', + 'location' => 'xml', + ), + 'RequestId' => array( + 'location' => 'header', + 'sentAs' => 'x-amz-request-id', + ), + ), + ), + 'ListHostedZonesByNameResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'HostedZones' => array( + 'type' => 'array', + 'location' => 'xml', + 'items' => array( + 'name' => 'HostedZone', + 'type' => 'object', + 'sentAs' => 'HostedZone', + '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', + ), + ), + ), + ), + 'DNSName' => array( + 'type' => 'string', + 'location' => 'xml', + ), + 'HostedZoneId' => array( + 'type' => 'string', + 'location' => 'xml', + ), + 'IsTruncated' => array( + 'type' => 'boolean', + 'location' => 'xml', + ), + 'NextDNSName' => array( + 'type' => 'string', + 'location' => 'xml', + ), + 'NextHostedZoneId' => array( + 'type' => 'string', + 'location' => 'xml', + ), + 'MaxItems' => array( + 'type' => 'string', + 'location' => 'xml', + ), + 'RequestId' => array( + 'location' => 'header', + 'sentAs' => 'x-amz-request-id', + ), + ), + ), + 'ListResourceRecordSetsResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'ResourceRecordSets' => array( + 'type' => 'array', + 'location' => 'xml', + 'items' => array( + 'name' => 'ResourceRecordSet', + 'type' => 'object', + 'sentAs' => 'ResourceRecordSet', + 'properties' => array( + 'Name' => array( + 'type' => 'string', + ), + 'Type' => array( + 'type' => 'string', + ), + 'SetIdentifier' => array( + 'type' => 'string', + ), + 'Weight' => array( + 'type' => 'numeric', + ), + 'Region' => array( + 'type' => 'string', + ), + 'GeoLocation' => array( + 'type' => 'object', + 'properties' => array( + 'ContinentCode' => array( + 'type' => 'string', + ), + 'CountryCode' => array( + 'type' => 'string', + ), + 'SubdivisionCode' => array( + 'type' => 'string', + ), + ), + ), + 'Failover' => array( + 'type' => 'string', + ), + 'TTL' => array( + 'type' => 'numeric', + ), + 'ResourceRecords' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'ResourceRecord', + 'type' => 'object', + 'sentAs' => 'ResourceRecord', + 'properties' => array( + 'Value' => array( + 'type' => 'string', + ), + ), + ), + ), + 'AliasTarget' => array( + 'type' => 'object', + 'properties' => array( + 'HostedZoneId' => array( + 'type' => 'string', + ), + 'DNSName' => array( + 'type' => 'string', + ), + 'EvaluateTargetHealth' => array( + 'type' => 'boolean', + ), + ), + ), + 'HealthCheckId' => array( + 'type' => 'string', + ), + ), + ), + ), + 'IsTruncated' => array( + 'type' => 'boolean', + 'location' => 'xml', + ), + 'NextRecordName' => array( + 'type' => 'string', + 'location' => 'xml', + ), + 'NextRecordType' => array( + 'type' => 'string', + 'location' => 'xml', + ), + 'NextRecordIdentifier' => array( + 'type' => 'string', + 'location' => 'xml', + ), + 'MaxItems' => array( + 'type' => 'string', + 'location' => 'xml', + ), + 'RequestId' => array( + 'location' => 'header', + 'sentAs' => 'x-amz-request-id', + ), + ), + ), + 'ListReusableDelegationSetsResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'DelegationSets' => array( + 'type' => 'array', + 'location' => 'xml', + 'items' => array( + 'name' => 'DelegationSet', + 'type' => 'object', + 'sentAs' => 'DelegationSet', + 'properties' => array( + 'Id' => array( + 'type' => 'string', + ), + 'CallerReference' => array( + 'type' => 'string', + ), + 'NameServers' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'NameServer', + 'type' => 'string', + 'sentAs' => 'NameServer', + ), + ), + ), + ), + ), + 'Marker' => array( + 'type' => 'string', + 'location' => 'xml', + ), + 'IsTruncated' => array( + 'type' => 'boolean', + 'location' => 'xml', + ), + 'NextMarker' => array( + 'type' => 'string', + 'location' => 'xml', + ), + 'MaxItems' => array( + 'type' => 'string', + 'location' => 'xml', + ), + 'RequestId' => array( + 'location' => 'header', + 'sentAs' => 'x-amz-request-id', + ), + ), + ), + 'ListTagsForResourceResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'ResourceTagSet' => array( + 'type' => 'object', + 'location' => 'xml', + 'properties' => array( + 'ResourceType' => array( + 'type' => 'string', + ), + 'ResourceId' => array( + 'type' => 'string', + ), + 'Tags' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Tag', + 'type' => 'object', + 'sentAs' => 'Tag', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + ), + 'Value' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + 'RequestId' => array( + 'location' => 'header', + 'sentAs' => 'x-amz-request-id', + ), + ), + ), + 'ListTagsForResourcesResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'ResourceTagSets' => array( + 'type' => 'array', + 'location' => 'xml', + 'items' => array( + 'name' => 'ResourceTagSet', + 'type' => 'object', + 'sentAs' => 'ResourceTagSet', + 'properties' => array( + 'ResourceType' => array( + 'type' => 'string', + ), + 'ResourceId' => array( + 'type' => 'string', + ), + 'Tags' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Tag', + 'type' => 'object', + 'sentAs' => 'Tag', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + ), + 'Value' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + ), + 'RequestId' => array( + 'location' => 'header', + 'sentAs' => 'x-amz-request-id', + ), + ), + ), + 'UpdateHealthCheckResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'HealthCheck' => array( + 'type' => 'object', + 'location' => 'xml', + 'properties' => array( + 'Id' => array( + 'type' => 'string', + ), + 'CallerReference' => array( + 'type' => 'string', + ), + 'HealthCheckConfig' => array( + 'type' => 'object', + 'properties' => array( + 'IPAddress' => array( + 'type' => 'string', + ), + 'Port' => array( + 'type' => 'numeric', + ), + 'Type' => array( + 'type' => 'string', + ), + 'ResourcePath' => array( + 'type' => 'string', + ), + 'FullyQualifiedDomainName' => array( + 'type' => 'string', + ), + 'SearchString' => array( + 'type' => 'string', + ), + 'RequestInterval' => array( + 'type' => 'numeric', + ), + 'FailureThreshold' => array( + 'type' => 'numeric', + ), + ), + ), + 'HealthCheckVersion' => array( + 'type' => 'numeric', + ), + ), + ), + 'RequestId' => array( + 'location' => 'header', + 'sentAs' => 'x-amz-request-id', + ), + ), + ), + '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( + 'input_token' => 'Marker', + 'output_token' => 'NextMarker', + 'more_results' => 'IsTruncated', + 'limit_key' => 'MaxItems', + 'result_key' => 'HealthChecks', + ), + 'ListHostedZones' => array( + 'input_token' => 'Marker', + 'output_token' => 'NextMarker', + 'more_results' => 'IsTruncated', + 'limit_key' => 'MaxItems', + 'result_key' => 'HostedZones', + ), + 'ListResourceRecordSets' => array( + 'more_results' => 'IsTruncated', + 'limit_key' => 'MaxItems', + 'result_key' => 'ResourceRecordSets', + 'input_token' => array( + 'StartRecordName', + 'StartRecordType', + 'StartRecordIdentifier', + ), + 'output_token' => array( + 'NextRecordName', + 'NextRecordType', + 'NextRecordIdentifier', + ), + ), + ), +); diff --git a/inc/aws-sdk/Aws/Route53/Route53Client.php b/inc/aws-sdk/Aws/Route53/Route53Client.php index 1e73402..43ebd31 100755 --- a/inc/aws-sdk/Aws/Route53/Route53Client.php +++ b/inc/aws-sdk/Aws/Route53/Route53Client.php @@ -28,27 +28,46 @@ use Guzzle\Service\Resource\ResourceIteratorInterface; /** * Client to interact with Amazon Route 53 * + * @method Model associateVPCWithHostedZone(array $args = array()) {@command Route53 AssociateVPCWithHostedZone} * @method Model changeResourceRecordSets(array $args = array()) {@command Route53 ChangeResourceRecordSets} + * @method Model changeTagsForResource(array $args = array()) {@command Route53 ChangeTagsForResource} * @method Model createHealthCheck(array $args = array()) {@command Route53 CreateHealthCheck} * @method Model createHostedZone(array $args = array()) {@command Route53 CreateHostedZone} + * @method Model createReusableDelegationSet(array $args = array()) {@command Route53 CreateReusableDelegationSet} * @method Model deleteHealthCheck(array $args = array()) {@command Route53 DeleteHealthCheck} * @method Model deleteHostedZone(array $args = array()) {@command Route53 DeleteHostedZone} + * @method Model deleteReusableDelegationSet(array $args = array()) {@command Route53 DeleteReusableDelegationSet} + * @method Model disassociateVPCFromHostedZone(array $args = array()) {@command Route53 DisassociateVPCFromHostedZone} * @method Model getChange(array $args = array()) {@command Route53 GetChange} + * @method Model getCheckerIpRanges(array $args = array()) {@command Route53 GetCheckerIpRanges} + * @method Model getGeoLocation(array $args = array()) {@command Route53 GetGeoLocation} * @method Model getHealthCheck(array $args = array()) {@command Route53 GetHealthCheck} + * @method Model getHealthCheckCount(array $args = array()) {@command Route53 GetHealthCheckCount} + * @method Model getHealthCheckLastFailureReason(array $args = array()) {@command Route53 GetHealthCheckLastFailureReason} + * @method Model getHealthCheckStatus(array $args = array()) {@command Route53 GetHealthCheckStatus} * @method Model getHostedZone(array $args = array()) {@command Route53 GetHostedZone} + * @method Model getHostedZoneCount(array $args = array()) {@command Route53 GetHostedZoneCount} + * @method Model getReusableDelegationSet(array $args = array()) {@command Route53 GetReusableDelegationSet} + * @method Model listGeoLocations(array $args = array()) {@command Route53 ListGeoLocations} * @method Model listHealthChecks(array $args = array()) {@command Route53 ListHealthChecks} * @method Model listHostedZones(array $args = array()) {@command Route53 ListHostedZones} + * @method Model listHostedZonesByName(array $args = array()) {@command Route53 ListHostedZonesByName} * @method Model listResourceRecordSets(array $args = array()) {@command Route53 ListResourceRecordSets} + * @method Model listReusableDelegationSets(array $args = array()) {@command Route53 ListReusableDelegationSets} + * @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 * - * @link http://docs.aws.amazon.com/aws-sdk-php/guide/latest/service-route53.html User guide - * @link http://docs.aws.amazon.com/aws-sdk-php/latest/class-Aws.Route53.Route53Client.html API docs + * @link http://docs.aws.amazon.com/aws-sdk-php/v2/guide/service-route53.html User guide + * @link http://docs.aws.amazon.com/aws-sdk-php/v2/api/class-Aws.Route53.Route53Client.html API docs */ class Route53Client extends AbstractClient { - const LATEST_API_VERSION = '2012-12-12'; + const LATEST_API_VERSION = '2013-04-01'; /** * Factory method to create a new Amazon Glacier client using an array of configuration options. @@ -56,7 +75,7 @@ class Route53Client extends AbstractClient * @param array|Collection $config Client configuration data * * @return self - * @see \Aws\Common\Client\DefaultClient for a list of available configuration options + * @link http://docs.aws.amazon.com/aws-sdk-php/v2/guide/configuration.html#client-configuration-options */ public static function factory($config = array()) { @@ -100,6 +119,6 @@ class Route53Client extends AbstractClient */ public static function cleanId($id) { - return str_replace(array('/hostedzone/', '/change/'), '', $id); + return str_replace(array('/hostedzone/', '/change/', '/delegationset/'), '', $id); } } diff --git a/inc/aws-sdk/Aws/Route53Domains/Exception/Route53DomainsException.php b/inc/aws-sdk/Aws/Route53Domains/Exception/Route53DomainsException.php new file mode 100644 index 0000000..2278eec --- /dev/null +++ b/inc/aws-sdk/Aws/Route53Domains/Exception/Route53DomainsException.php @@ -0,0 +1,10 @@ + '2014-05-15', + 'endpointPrefix' => 'route53domains', + 'serviceFullName' => 'Amazon Route 53 Domains', + 'serviceType' => 'json', + 'jsonVersion' => '1.1', + 'targetPrefix' => 'Route53Domains_v20140515.', + 'signatureVersion' => 'v4', + 'namespace' => 'Route53Domains', + 'regions' => array( + 'us-east-1' => array( + 'http' => false, + 'https' => true, + 'hostname' => 'route53domains.us-east-1.amazonaws.com', + ), + ), + 'operations' => array( + 'CheckDomainAvailability' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'CheckDomainAvailabilityResponse', + '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' => 'Route53Domains_v20140515.CheckDomainAvailability', + ), + 'DomainName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'maxLength' => 255, + ), + 'IdnLangCode' => array( + 'type' => 'string', + 'location' => 'json', + 'maxLength' => 3, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The requested item is not acceptable. For example, for an OperationId it may refer to the ID of an operation that is already completed. For a domain name, it may not be a valid domain name or belong to the requester account.', + 'class' => 'InvalidInputException', + ), + array( + 'reason' => 'Amazon Route 53 does not support this top-level domain.', + 'class' => 'UnsupportedTLDException', + ), + ), + ), + 'DeleteTagsForDomain' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'EmptyOutput', + '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' => 'Route53Domains_v20140515.DeleteTagsForDomain', + ), + 'DomainName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'maxLength' => 255, + ), + 'TagsToDelete' => array( + 'required' => true, + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'TagKey', + 'type' => 'string', + ), + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The requested item is not acceptable. For example, for an OperationId it may refer to the ID of an operation that is already completed. For a domain name, it may not be a valid domain name or belong to the requester account.', + 'class' => 'InvalidInputException', + ), + array( + 'reason' => 'The number of operations or jobs running exceeded the allowed threshold for the account.', + 'class' => 'OperationLimitExceededException', + ), + ), + ), + 'DisableDomainAutoRenew' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'EmptyOutput', + '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' => 'Route53Domains_v20140515.DisableDomainAutoRenew', + ), + 'DomainName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'maxLength' => 255, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The requested item is not acceptable. For example, for an OperationId it may refer to the ID of an operation that is already completed. For a domain name, it may not be a valid domain name or belong to the requester account.', + 'class' => 'InvalidInputException', + ), + ), + ), + 'DisableDomainTransferLock' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'DisableDomainTransferLockResponse', + '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' => 'Route53Domains_v20140515.DisableDomainTransferLock', + ), + 'DomainName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'maxLength' => 255, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The requested item is not acceptable. For example, for an OperationId it may refer to the ID of an operation that is already completed. For a domain name, it may not be a valid domain name or belong to the requester account.', + 'class' => 'InvalidInputException', + ), + array( + 'reason' => 'The request is already in progress for the domain.', + 'class' => 'DuplicateRequestException', + ), + array( + 'reason' => 'The top-level domain does not support this operation.', + 'class' => 'TLDRulesViolationException', + ), + array( + 'reason' => 'The number of operations or jobs running exceeded the allowed threshold for the account.', + 'class' => 'OperationLimitExceededException', + ), + ), + ), + 'EnableDomainAutoRenew' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'EmptyOutput', + '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' => 'Route53Domains_v20140515.EnableDomainAutoRenew', + ), + 'DomainName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'maxLength' => 255, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The requested item is not acceptable. For example, for an OperationId it may refer to the ID of an operation that is already completed. For a domain name, it may not be a valid domain name or belong to the requester account.', + 'class' => 'InvalidInputException', + ), + ), + ), + 'EnableDomainTransferLock' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'EnableDomainTransferLockResponse', + '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' => 'Route53Domains_v20140515.EnableDomainTransferLock', + ), + 'DomainName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'maxLength' => 255, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The requested item is not acceptable. For example, for an OperationId it may refer to the ID of an operation that is already completed. For a domain name, it may not be a valid domain name or belong to the requester account.', + 'class' => 'InvalidInputException', + ), + array( + 'reason' => 'The request is already in progress for the domain.', + 'class' => 'DuplicateRequestException', + ), + array( + 'reason' => 'The top-level domain does not support this operation.', + 'class' => 'TLDRulesViolationException', + ), + array( + 'reason' => 'The number of operations or jobs running exceeded the allowed threshold for the account.', + 'class' => 'OperationLimitExceededException', + ), + ), + ), + 'GetDomainDetail' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'GetDomainDetailResponse', + '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' => 'Route53Domains_v20140515.GetDomainDetail', + ), + 'DomainName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'maxLength' => 255, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The requested item is not acceptable. For example, for an OperationId it may refer to the ID of an operation that is already completed. For a domain name, it may not be a valid domain name or belong to the requester account.', + 'class' => 'InvalidInputException', + ), + ), + ), + 'GetOperationDetail' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'GetOperationDetailResponse', + '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' => 'Route53Domains_v20140515.GetOperationDetail', + ), + 'OperationId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'maxLength' => 255, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The requested item is not acceptable. For example, for an OperationId it may refer to the ID of an operation that is already completed. For a domain name, it may not be a valid domain name or belong to the requester account.', + 'class' => 'InvalidInputException', + ), + ), + ), + 'ListDomains' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'ListDomainsResponse', + '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' => 'Route53Domains_v20140515.ListDomains', + ), + 'Marker' => array( + 'type' => 'string', + 'location' => 'json', + 'maxLength' => 4096, + ), + 'MaxItems' => array( + 'type' => 'numeric', + 'location' => 'json', + 'maximum' => 100, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The requested item is not acceptable. For example, for an OperationId it may refer to the ID of an operation that is already completed. For a domain name, it may not be a valid domain name or belong to the requester account.', + 'class' => 'InvalidInputException', + ), + ), + ), + 'ListOperations' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'ListOperationsResponse', + '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' => 'Route53Domains_v20140515.ListOperations', + ), + 'Marker' => array( + 'type' => 'string', + 'location' => 'json', + 'maxLength' => 4096, + ), + 'MaxItems' => array( + 'type' => 'numeric', + 'location' => 'json', + 'maximum' => 100, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The requested item is not acceptable. For example, for an OperationId it may refer to the ID of an operation that is already completed. For a domain name, it may not be a valid domain name or belong to the requester account.', + 'class' => 'InvalidInputException', + ), + ), + ), + 'ListTagsForDomain' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'ListTagsForDomainResponse', + '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' => 'Route53Domains_v20140515.ListTagsForDomain', + ), + 'DomainName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'maxLength' => 255, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The requested item is not acceptable. For example, for an OperationId it may refer to the ID of an operation that is already completed. For a domain name, it may not be a valid domain name or belong to the requester account.', + 'class' => 'InvalidInputException', + ), + array( + 'reason' => 'The number of operations or jobs running exceeded the allowed threshold for the account.', + 'class' => 'OperationLimitExceededException', + ), + ), + ), + 'RegisterDomain' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'RegisterDomainResponse', + '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' => 'Route53Domains_v20140515.RegisterDomain', + ), + 'DomainName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'maxLength' => 255, + ), + 'IdnLangCode' => array( + 'type' => 'string', + 'location' => 'json', + 'maxLength' => 3, + ), + 'DurationInYears' => array( + 'required' => true, + 'type' => 'numeric', + 'location' => 'json', + 'minimum' => 1, + 'maximum' => 10, + ), + 'AutoRenew' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'json', + ), + 'AdminContact' => array( + 'required' => true, + 'type' => 'object', + 'location' => 'json', + 'properties' => array( + 'FirstName' => array( + 'type' => 'string', + 'maxLength' => 255, + ), + 'LastName' => array( + 'type' => 'string', + 'maxLength' => 255, + ), + 'ContactType' => array( + 'type' => 'string', + ), + 'OrganizationName' => array( + 'type' => 'string', + 'maxLength' => 255, + ), + 'AddressLine1' => array( + 'type' => 'string', + 'maxLength' => 255, + ), + 'AddressLine2' => array( + 'type' => 'string', + 'maxLength' => 255, + ), + 'City' => array( + 'type' => 'string', + 'maxLength' => 255, + ), + 'State' => array( + 'type' => 'string', + 'maxLength' => 255, + ), + 'CountryCode' => array( + 'type' => 'string', + ), + 'ZipCode' => array( + 'type' => 'string', + 'maxLength' => 255, + ), + 'PhoneNumber' => array( + 'type' => 'string', + 'maxLength' => 30, + ), + 'Email' => array( + 'type' => 'string', + 'maxLength' => 254, + ), + 'Fax' => array( + 'type' => 'string', + 'maxLength' => 30, + ), + 'ExtraParams' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'ExtraParam', + 'type' => 'object', + 'properties' => array( + 'Name' => array( + 'required' => true, + 'type' => 'string', + ), + 'Value' => array( + 'required' => true, + 'type' => 'string', + 'maxLength' => 2048, + ), + ), + ), + ), + ), + ), + 'RegistrantContact' => array( + 'required' => true, + 'type' => 'object', + 'location' => 'json', + 'properties' => array( + 'FirstName' => array( + 'type' => 'string', + 'maxLength' => 255, + ), + 'LastName' => array( + 'type' => 'string', + 'maxLength' => 255, + ), + 'ContactType' => array( + 'type' => 'string', + ), + 'OrganizationName' => array( + 'type' => 'string', + 'maxLength' => 255, + ), + 'AddressLine1' => array( + 'type' => 'string', + 'maxLength' => 255, + ), + 'AddressLine2' => array( + 'type' => 'string', + 'maxLength' => 255, + ), + 'City' => array( + 'type' => 'string', + 'maxLength' => 255, + ), + 'State' => array( + 'type' => 'string', + 'maxLength' => 255, + ), + 'CountryCode' => array( + 'type' => 'string', + ), + 'ZipCode' => array( + 'type' => 'string', + 'maxLength' => 255, + ), + 'PhoneNumber' => array( + 'type' => 'string', + 'maxLength' => 30, + ), + 'Email' => array( + 'type' => 'string', + 'maxLength' => 254, + ), + 'Fax' => array( + 'type' => 'string', + 'maxLength' => 30, + ), + 'ExtraParams' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'ExtraParam', + 'type' => 'object', + 'properties' => array( + 'Name' => array( + 'required' => true, + 'type' => 'string', + ), + 'Value' => array( + 'required' => true, + 'type' => 'string', + 'maxLength' => 2048, + ), + ), + ), + ), + ), + ), + 'TechContact' => array( + 'required' => true, + 'type' => 'object', + 'location' => 'json', + 'properties' => array( + 'FirstName' => array( + 'type' => 'string', + 'maxLength' => 255, + ), + 'LastName' => array( + 'type' => 'string', + 'maxLength' => 255, + ), + 'ContactType' => array( + 'type' => 'string', + ), + 'OrganizationName' => array( + 'type' => 'string', + 'maxLength' => 255, + ), + 'AddressLine1' => array( + 'type' => 'string', + 'maxLength' => 255, + ), + 'AddressLine2' => array( + 'type' => 'string', + 'maxLength' => 255, + ), + 'City' => array( + 'type' => 'string', + 'maxLength' => 255, + ), + 'State' => array( + 'type' => 'string', + 'maxLength' => 255, + ), + 'CountryCode' => array( + 'type' => 'string', + ), + 'ZipCode' => array( + 'type' => 'string', + 'maxLength' => 255, + ), + 'PhoneNumber' => array( + 'type' => 'string', + 'maxLength' => 30, + ), + 'Email' => array( + 'type' => 'string', + 'maxLength' => 254, + ), + 'Fax' => array( + 'type' => 'string', + 'maxLength' => 30, + ), + 'ExtraParams' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'ExtraParam', + 'type' => 'object', + 'properties' => array( + 'Name' => array( + 'required' => true, + 'type' => 'string', + ), + 'Value' => array( + 'required' => true, + 'type' => 'string', + 'maxLength' => 2048, + ), + ), + ), + ), + ), + ), + 'PrivacyProtectAdminContact' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'json', + ), + 'PrivacyProtectRegistrantContact' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'json', + ), + 'PrivacyProtectTechContact' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'json', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The requested item is not acceptable. For example, for an OperationId it may refer to the ID of an operation that is already completed. For a domain name, it may not be a valid domain name or belong to the requester account.', + 'class' => 'InvalidInputException', + ), + array( + 'reason' => 'Amazon Route 53 does not support this top-level domain.', + 'class' => 'UnsupportedTLDException', + ), + array( + 'reason' => 'The request is already in progress for the domain.', + 'class' => 'DuplicateRequestException', + ), + array( + 'reason' => 'The top-level domain does not support this operation.', + 'class' => 'TLDRulesViolationException', + ), + array( + 'reason' => 'The number of domains has exceeded the allowed threshold for the account.', + 'class' => 'DomainLimitExceededException', + ), + array( + 'reason' => 'The number of operations or jobs running exceeded the allowed threshold for the account.', + 'class' => 'OperationLimitExceededException', + ), + ), + ), + 'RetrieveDomainAuthCode' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'RetrieveDomainAuthCodeResponse', + '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' => 'Route53Domains_v20140515.RetrieveDomainAuthCode', + ), + 'DomainName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'maxLength' => 255, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The requested item is not acceptable. For example, for an OperationId it may refer to the ID of an operation that is already completed. For a domain name, it may not be a valid domain name or belong to the requester account.', + 'class' => 'InvalidInputException', + ), + ), + ), + 'TransferDomain' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'TransferDomainResponse', + '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' => 'Route53Domains_v20140515.TransferDomain', + ), + 'DomainName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'maxLength' => 255, + ), + 'IdnLangCode' => array( + 'type' => 'string', + 'location' => 'json', + 'maxLength' => 3, + ), + 'DurationInYears' => array( + 'required' => true, + 'type' => 'numeric', + 'location' => 'json', + 'minimum' => 1, + 'maximum' => 10, + ), + 'Nameservers' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'Nameserver', + 'type' => 'object', + 'properties' => array( + 'Name' => array( + 'required' => true, + 'type' => 'string', + 'maxLength' => 255, + ), + 'GlueIps' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'GlueIp', + 'type' => 'string', + 'maxLength' => 45, + ), + ), + ), + ), + ), + 'AuthCode' => array( + 'type' => 'string', + 'location' => 'json', + 'maxLength' => 1024, + ), + 'AutoRenew' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'json', + ), + 'AdminContact' => array( + 'required' => true, + 'type' => 'object', + 'location' => 'json', + 'properties' => array( + 'FirstName' => array( + 'type' => 'string', + 'maxLength' => 255, + ), + 'LastName' => array( + 'type' => 'string', + 'maxLength' => 255, + ), + 'ContactType' => array( + 'type' => 'string', + ), + 'OrganizationName' => array( + 'type' => 'string', + 'maxLength' => 255, + ), + 'AddressLine1' => array( + 'type' => 'string', + 'maxLength' => 255, + ), + 'AddressLine2' => array( + 'type' => 'string', + 'maxLength' => 255, + ), + 'City' => array( + 'type' => 'string', + 'maxLength' => 255, + ), + 'State' => array( + 'type' => 'string', + 'maxLength' => 255, + ), + 'CountryCode' => array( + 'type' => 'string', + ), + 'ZipCode' => array( + 'type' => 'string', + 'maxLength' => 255, + ), + 'PhoneNumber' => array( + 'type' => 'string', + 'maxLength' => 30, + ), + 'Email' => array( + 'type' => 'string', + 'maxLength' => 254, + ), + 'Fax' => array( + 'type' => 'string', + 'maxLength' => 30, + ), + 'ExtraParams' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'ExtraParam', + 'type' => 'object', + 'properties' => array( + 'Name' => array( + 'required' => true, + 'type' => 'string', + ), + 'Value' => array( + 'required' => true, + 'type' => 'string', + 'maxLength' => 2048, + ), + ), + ), + ), + ), + ), + 'RegistrantContact' => array( + 'required' => true, + 'type' => 'object', + 'location' => 'json', + 'properties' => array( + 'FirstName' => array( + 'type' => 'string', + 'maxLength' => 255, + ), + 'LastName' => array( + 'type' => 'string', + 'maxLength' => 255, + ), + 'ContactType' => array( + 'type' => 'string', + ), + 'OrganizationName' => array( + 'type' => 'string', + 'maxLength' => 255, + ), + 'AddressLine1' => array( + 'type' => 'string', + 'maxLength' => 255, + ), + 'AddressLine2' => array( + 'type' => 'string', + 'maxLength' => 255, + ), + 'City' => array( + 'type' => 'string', + 'maxLength' => 255, + ), + 'State' => array( + 'type' => 'string', + 'maxLength' => 255, + ), + 'CountryCode' => array( + 'type' => 'string', + ), + 'ZipCode' => array( + 'type' => 'string', + 'maxLength' => 255, + ), + 'PhoneNumber' => array( + 'type' => 'string', + 'maxLength' => 30, + ), + 'Email' => array( + 'type' => 'string', + 'maxLength' => 254, + ), + 'Fax' => array( + 'type' => 'string', + 'maxLength' => 30, + ), + 'ExtraParams' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'ExtraParam', + 'type' => 'object', + 'properties' => array( + 'Name' => array( + 'required' => true, + 'type' => 'string', + ), + 'Value' => array( + 'required' => true, + 'type' => 'string', + 'maxLength' => 2048, + ), + ), + ), + ), + ), + ), + 'TechContact' => array( + 'required' => true, + 'type' => 'object', + 'location' => 'json', + 'properties' => array( + 'FirstName' => array( + 'type' => 'string', + 'maxLength' => 255, + ), + 'LastName' => array( + 'type' => 'string', + 'maxLength' => 255, + ), + 'ContactType' => array( + 'type' => 'string', + ), + 'OrganizationName' => array( + 'type' => 'string', + 'maxLength' => 255, + ), + 'AddressLine1' => array( + 'type' => 'string', + 'maxLength' => 255, + ), + 'AddressLine2' => array( + 'type' => 'string', + 'maxLength' => 255, + ), + 'City' => array( + 'type' => 'string', + 'maxLength' => 255, + ), + 'State' => array( + 'type' => 'string', + 'maxLength' => 255, + ), + 'CountryCode' => array( + 'type' => 'string', + ), + 'ZipCode' => array( + 'type' => 'string', + 'maxLength' => 255, + ), + 'PhoneNumber' => array( + 'type' => 'string', + 'maxLength' => 30, + ), + 'Email' => array( + 'type' => 'string', + 'maxLength' => 254, + ), + 'Fax' => array( + 'type' => 'string', + 'maxLength' => 30, + ), + 'ExtraParams' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'ExtraParam', + 'type' => 'object', + 'properties' => array( + 'Name' => array( + 'required' => true, + 'type' => 'string', + ), + 'Value' => array( + 'required' => true, + 'type' => 'string', + 'maxLength' => 2048, + ), + ), + ), + ), + ), + ), + 'PrivacyProtectAdminContact' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'json', + ), + 'PrivacyProtectRegistrantContact' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'json', + ), + 'PrivacyProtectTechContact' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'json', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The requested item is not acceptable. For example, for an OperationId it may refer to the ID of an operation that is already completed. For a domain name, it may not be a valid domain name or belong to the requester account.', + 'class' => 'InvalidInputException', + ), + array( + 'reason' => 'Amazon Route 53 does not support this top-level domain.', + 'class' => 'UnsupportedTLDException', + ), + array( + 'reason' => 'The request is already in progress for the domain.', + 'class' => 'DuplicateRequestException', + ), + array( + 'reason' => 'The top-level domain does not support this operation.', + 'class' => 'TLDRulesViolationException', + ), + array( + 'reason' => 'The number of domains has exceeded the allowed threshold for the account.', + 'class' => 'DomainLimitExceededException', + ), + array( + 'reason' => 'The number of operations or jobs running exceeded the allowed threshold for the account.', + 'class' => 'OperationLimitExceededException', + ), + ), + ), + 'UpdateDomainContact' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'UpdateDomainContactResponse', + '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' => 'Route53Domains_v20140515.UpdateDomainContact', + ), + 'DomainName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'maxLength' => 255, + ), + 'AdminContact' => array( + 'type' => 'object', + 'location' => 'json', + 'properties' => array( + 'FirstName' => array( + 'type' => 'string', + 'maxLength' => 255, + ), + 'LastName' => array( + 'type' => 'string', + 'maxLength' => 255, + ), + 'ContactType' => array( + 'type' => 'string', + ), + 'OrganizationName' => array( + 'type' => 'string', + 'maxLength' => 255, + ), + 'AddressLine1' => array( + 'type' => 'string', + 'maxLength' => 255, + ), + 'AddressLine2' => array( + 'type' => 'string', + 'maxLength' => 255, + ), + 'City' => array( + 'type' => 'string', + 'maxLength' => 255, + ), + 'State' => array( + 'type' => 'string', + 'maxLength' => 255, + ), + 'CountryCode' => array( + 'type' => 'string', + ), + 'ZipCode' => array( + 'type' => 'string', + 'maxLength' => 255, + ), + 'PhoneNumber' => array( + 'type' => 'string', + 'maxLength' => 30, + ), + 'Email' => array( + 'type' => 'string', + 'maxLength' => 254, + ), + 'Fax' => array( + 'type' => 'string', + 'maxLength' => 30, + ), + 'ExtraParams' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'ExtraParam', + 'type' => 'object', + 'properties' => array( + 'Name' => array( + 'required' => true, + 'type' => 'string', + ), + 'Value' => array( + 'required' => true, + 'type' => 'string', + 'maxLength' => 2048, + ), + ), + ), + ), + ), + ), + 'RegistrantContact' => array( + 'type' => 'object', + 'location' => 'json', + 'properties' => array( + 'FirstName' => array( + 'type' => 'string', + 'maxLength' => 255, + ), + 'LastName' => array( + 'type' => 'string', + 'maxLength' => 255, + ), + 'ContactType' => array( + 'type' => 'string', + ), + 'OrganizationName' => array( + 'type' => 'string', + 'maxLength' => 255, + ), + 'AddressLine1' => array( + 'type' => 'string', + 'maxLength' => 255, + ), + 'AddressLine2' => array( + 'type' => 'string', + 'maxLength' => 255, + ), + 'City' => array( + 'type' => 'string', + 'maxLength' => 255, + ), + 'State' => array( + 'type' => 'string', + 'maxLength' => 255, + ), + 'CountryCode' => array( + 'type' => 'string', + ), + 'ZipCode' => array( + 'type' => 'string', + 'maxLength' => 255, + ), + 'PhoneNumber' => array( + 'type' => 'string', + 'maxLength' => 30, + ), + 'Email' => array( + 'type' => 'string', + 'maxLength' => 254, + ), + 'Fax' => array( + 'type' => 'string', + 'maxLength' => 30, + ), + 'ExtraParams' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'ExtraParam', + 'type' => 'object', + 'properties' => array( + 'Name' => array( + 'required' => true, + 'type' => 'string', + ), + 'Value' => array( + 'required' => true, + 'type' => 'string', + 'maxLength' => 2048, + ), + ), + ), + ), + ), + ), + 'TechContact' => array( + 'type' => 'object', + 'location' => 'json', + 'properties' => array( + 'FirstName' => array( + 'type' => 'string', + 'maxLength' => 255, + ), + 'LastName' => array( + 'type' => 'string', + 'maxLength' => 255, + ), + 'ContactType' => array( + 'type' => 'string', + ), + 'OrganizationName' => array( + 'type' => 'string', + 'maxLength' => 255, + ), + 'AddressLine1' => array( + 'type' => 'string', + 'maxLength' => 255, + ), + 'AddressLine2' => array( + 'type' => 'string', + 'maxLength' => 255, + ), + 'City' => array( + 'type' => 'string', + 'maxLength' => 255, + ), + 'State' => array( + 'type' => 'string', + 'maxLength' => 255, + ), + 'CountryCode' => array( + 'type' => 'string', + ), + 'ZipCode' => array( + 'type' => 'string', + 'maxLength' => 255, + ), + 'PhoneNumber' => array( + 'type' => 'string', + 'maxLength' => 30, + ), + 'Email' => array( + 'type' => 'string', + 'maxLength' => 254, + ), + 'Fax' => array( + 'type' => 'string', + 'maxLength' => 30, + ), + 'ExtraParams' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'ExtraParam', + 'type' => 'object', + 'properties' => array( + 'Name' => array( + 'required' => true, + 'type' => 'string', + ), + 'Value' => array( + 'required' => true, + 'type' => 'string', + 'maxLength' => 2048, + ), + ), + ), + ), + ), + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The requested item is not acceptable. For example, for an OperationId it may refer to the ID of an operation that is already completed. For a domain name, it may not be a valid domain name or belong to the requester account.', + 'class' => 'InvalidInputException', + ), + array( + 'reason' => 'The request is already in progress for the domain.', + 'class' => 'DuplicateRequestException', + ), + array( + 'reason' => 'The top-level domain does not support this operation.', + 'class' => 'TLDRulesViolationException', + ), + array( + 'reason' => 'The number of operations or jobs running exceeded the allowed threshold for the account.', + 'class' => 'OperationLimitExceededException', + ), + ), + ), + 'UpdateDomainContactPrivacy' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'UpdateDomainContactPrivacyResponse', + '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' => 'Route53Domains_v20140515.UpdateDomainContactPrivacy', + ), + 'DomainName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'maxLength' => 255, + ), + 'AdminPrivacy' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'json', + ), + 'RegistrantPrivacy' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'json', + ), + 'TechPrivacy' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'json', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The requested item is not acceptable. For example, for an OperationId it may refer to the ID of an operation that is already completed. For a domain name, it may not be a valid domain name or belong to the requester account.', + 'class' => 'InvalidInputException', + ), + array( + 'reason' => 'The request is already in progress for the domain.', + 'class' => 'DuplicateRequestException', + ), + array( + 'reason' => 'The top-level domain does not support this operation.', + 'class' => 'TLDRulesViolationException', + ), + array( + 'reason' => 'The number of operations or jobs running exceeded the allowed threshold for the account.', + 'class' => 'OperationLimitExceededException', + ), + ), + ), + 'UpdateDomainNameservers' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'UpdateDomainNameserversResponse', + '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' => 'Route53Domains_v20140515.UpdateDomainNameservers', + ), + 'DomainName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'maxLength' => 255, + ), + 'FIAuthKey' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'Nameservers' => array( + 'required' => true, + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'Nameserver', + 'type' => 'object', + 'properties' => array( + 'Name' => array( + 'required' => true, + 'type' => 'string', + 'maxLength' => 255, + ), + 'GlueIps' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'GlueIp', + 'type' => 'string', + 'maxLength' => 45, + ), + ), + ), + ), + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The requested item is not acceptable. For example, for an OperationId it may refer to the ID of an operation that is already completed. For a domain name, it may not be a valid domain name or belong to the requester account.', + 'class' => 'InvalidInputException', + ), + array( + 'reason' => 'The request is already in progress for the domain.', + 'class' => 'DuplicateRequestException', + ), + array( + 'reason' => 'The top-level domain does not support this operation.', + 'class' => 'TLDRulesViolationException', + ), + array( + 'reason' => 'The number of operations or jobs running exceeded the allowed threshold for the account.', + 'class' => 'OperationLimitExceededException', + ), + ), + ), + 'UpdateTagsForDomain' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'EmptyOutput', + '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' => 'Route53Domains_v20140515.UpdateTagsForDomain', + ), + 'DomainName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'maxLength' => 255, + ), + 'TagsToUpdate' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'Tag', + 'type' => 'object', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + ), + 'Value' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The requested item is not acceptable. For example, for an OperationId it may refer to the ID of an operation that is already completed. For a domain name, it may not be a valid domain name or belong to the requester account.', + 'class' => 'InvalidInputException', + ), + array( + 'reason' => 'The number of operations or jobs running exceeded the allowed threshold for the account.', + 'class' => 'OperationLimitExceededException', + ), + ), + ), + ), + 'models' => array( + 'CheckDomainAvailabilityResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'Availability' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + ), + 'EmptyOutput' => array( + 'type' => 'object', + 'additionalProperties' => true, + ), + 'DisableDomainTransferLockResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'OperationId' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + ), + 'EnableDomainTransferLockResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'OperationId' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + ), + 'GetDomainDetailResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'DomainName' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'Nameservers' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'Nameserver', + 'type' => 'object', + 'properties' => array( + 'Name' => array( + 'type' => 'string', + ), + 'GlueIps' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'GlueIp', + 'type' => 'string', + ), + ), + ), + ), + ), + 'AutoRenew' => array( + 'type' => 'boolean', + 'location' => 'json', + ), + 'AdminContact' => array( + 'type' => 'object', + 'location' => 'json', + 'properties' => array( + 'FirstName' => array( + 'type' => 'string', + ), + 'LastName' => array( + 'type' => 'string', + ), + 'ContactType' => array( + 'type' => 'string', + ), + 'OrganizationName' => array( + 'type' => 'string', + ), + 'AddressLine1' => array( + 'type' => 'string', + ), + 'AddressLine2' => array( + 'type' => 'string', + ), + 'City' => array( + 'type' => 'string', + ), + 'State' => array( + 'type' => 'string', + ), + 'CountryCode' => array( + 'type' => 'string', + ), + 'ZipCode' => array( + 'type' => 'string', + ), + 'PhoneNumber' => array( + 'type' => 'string', + ), + 'Email' => array( + 'type' => 'string', + ), + 'Fax' => array( + 'type' => 'string', + ), + 'ExtraParams' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'ExtraParam', + 'type' => 'object', + 'properties' => array( + 'Name' => array( + 'type' => 'string', + ), + 'Value' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + 'RegistrantContact' => array( + 'type' => 'object', + 'location' => 'json', + 'properties' => array( + 'FirstName' => array( + 'type' => 'string', + ), + 'LastName' => array( + 'type' => 'string', + ), + 'ContactType' => array( + 'type' => 'string', + ), + 'OrganizationName' => array( + 'type' => 'string', + ), + 'AddressLine1' => array( + 'type' => 'string', + ), + 'AddressLine2' => array( + 'type' => 'string', + ), + 'City' => array( + 'type' => 'string', + ), + 'State' => array( + 'type' => 'string', + ), + 'CountryCode' => array( + 'type' => 'string', + ), + 'ZipCode' => array( + 'type' => 'string', + ), + 'PhoneNumber' => array( + 'type' => 'string', + ), + 'Email' => array( + 'type' => 'string', + ), + 'Fax' => array( + 'type' => 'string', + ), + 'ExtraParams' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'ExtraParam', + 'type' => 'object', + 'properties' => array( + 'Name' => array( + 'type' => 'string', + ), + 'Value' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + 'TechContact' => array( + 'type' => 'object', + 'location' => 'json', + 'properties' => array( + 'FirstName' => array( + 'type' => 'string', + ), + 'LastName' => array( + 'type' => 'string', + ), + 'ContactType' => array( + 'type' => 'string', + ), + 'OrganizationName' => array( + 'type' => 'string', + ), + 'AddressLine1' => array( + 'type' => 'string', + ), + 'AddressLine2' => array( + 'type' => 'string', + ), + 'City' => array( + 'type' => 'string', + ), + 'State' => array( + 'type' => 'string', + ), + 'CountryCode' => array( + 'type' => 'string', + ), + 'ZipCode' => array( + 'type' => 'string', + ), + 'PhoneNumber' => array( + 'type' => 'string', + ), + 'Email' => array( + 'type' => 'string', + ), + 'Fax' => array( + 'type' => 'string', + ), + 'ExtraParams' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'ExtraParam', + 'type' => 'object', + 'properties' => array( + 'Name' => array( + 'type' => 'string', + ), + 'Value' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + 'AdminPrivacy' => array( + 'type' => 'boolean', + 'location' => 'json', + ), + 'RegistrantPrivacy' => array( + 'type' => 'boolean', + 'location' => 'json', + ), + 'TechPrivacy' => array( + 'type' => 'boolean', + 'location' => 'json', + ), + 'RegistrarName' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'WhoIsServer' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'RegistrarUrl' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'AbuseContactEmail' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'AbuseContactPhone' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'RegistryDomainId' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'CreationDate' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'UpdatedDate' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'ExpirationDate' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'Reseller' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'DnsSec' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'StatusList' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'DomainStatus', + 'type' => 'string', + ), + ), + ), + ), + 'GetOperationDetailResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'OperationId' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'Status' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'Message' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'DomainName' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'Type' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'SubmittedDate' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + ), + 'ListDomainsResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'Domains' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'DomainSummary', + 'type' => 'object', + 'properties' => array( + 'DomainName' => array( + 'type' => 'string', + ), + 'AutoRenew' => array( + 'type' => 'boolean', + ), + 'TransferLock' => array( + 'type' => 'boolean', + ), + 'Expiry' => array( + 'type' => 'string', + ), + ), + ), + ), + 'NextPageMarker' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + ), + 'ListOperationsResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'Operations' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'OperationSummary', + 'type' => 'object', + 'properties' => array( + 'OperationId' => array( + 'type' => 'string', + ), + 'Status' => array( + 'type' => 'string', + ), + 'Type' => array( + 'type' => 'string', + ), + 'SubmittedDate' => array( + 'type' => 'string', + ), + ), + ), + ), + 'NextPageMarker' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + ), + 'ListTagsForDomainResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'TagList' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'Tag', + 'type' => 'object', + 'properties' => array( + 'Key' => array( + 'type' => 'string', + ), + 'Value' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + 'RegisterDomainResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'OperationId' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + ), + 'RetrieveDomainAuthCodeResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'AuthCode' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + ), + 'TransferDomainResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'OperationId' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + ), + 'UpdateDomainContactResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'OperationId' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + ), + 'UpdateDomainContactPrivacyResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'OperationId' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + ), + 'UpdateDomainNameserversResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'OperationId' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + ), + ), + 'iterators' => array( + 'ListDomains' => array( + 'limit_key' => 'MaxItems', + 'input_token' => 'Marker', + 'output_token' => 'NextPageMarker', + 'result_key' => 'Domains', + ), + 'ListOperations' => array( + 'limit_key' => 'MaxItems', + 'input_token' => 'Marker', + 'output_token' => 'NextPageMarker', + 'result_key' => 'Operations', + ), + ), +); diff --git a/inc/aws-sdk/Aws/Route53Domains/Route53DomainsClient.php b/inc/aws-sdk/Aws/Route53Domains/Route53DomainsClient.php new file mode 100644 index 0000000..8a7d819 --- /dev/null +++ b/inc/aws-sdk/Aws/Route53Domains/Route53DomainsClient.php @@ -0,0 +1,48 @@ +setConfig($config) + ->setConfigDefaults(array( + Options::VERSION => self::LATEST_API_VERSION, + Options::SERVICE_DESCRIPTION => __DIR__ . '/Resources/route53domains-%s.php' + )) + ->setExceptionParser(new JsonQueryExceptionParser) + ->build(); + } +} diff --git a/inc/aws-sdk/Aws/S3/AcpListener.php b/inc/aws-sdk/Aws/S3/AcpListener.php index 2d28407..49b5ebc 100755 --- a/inc/aws-sdk/Aws/S3/AcpListener.php +++ b/inc/aws-sdk/Aws/S3/AcpListener.php @@ -43,7 +43,7 @@ class AcpListener implements EventSubscriberInterface */ public function onCommandBeforePrepare(Event $event) { - /** @var $command \Guzzle\Service\Command\AbstractCommand */ + /** @var \Guzzle\Service\Command\AbstractCommand $command */ $command = $event['command']; $operation = $command->getOperation(); if ($operation->hasParam('ACP') && $command->hasKey('ACP')) { diff --git a/inc/aws-sdk/Aws/S3/BucketStyleListener.php b/inc/aws-sdk/Aws/S3/BucketStyleListener.php index 6bb5bb4..5d7bbde 100755 --- a/inc/aws-sdk/Aws/S3/BucketStyleListener.php +++ b/inc/aws-sdk/Aws/S3/BucketStyleListener.php @@ -24,9 +24,8 @@ use Symfony\Component\EventDispatcher\EventSubscriberInterface; */ class BucketStyleListener implements EventSubscriberInterface { - /** - * {@inheritdoc} - */ + private static $exclusions = array('GetBucketLocation' => true); + public static function getSubscribedEvents() { return array('command.after_prepare' => array('onCommandAfterPrepare', -255)); @@ -44,6 +43,11 @@ class BucketStyleListener implements EventSubscriberInterface $request = $command->getRequest(); $pathStyle = false; + // Skip operations that do not need the bucket moved to the host. + if (isset(self::$exclusions[$command->getName()])) { + return; + } + if ($key = $command['Key']) { // Modify the command Key to account for the {/Key*} explosion into an array if (is_array($key)) { diff --git a/inc/aws-sdk/Aws/S3/Enum/EncodingType.php b/inc/aws-sdk/Aws/S3/Enum/EncodingType.php new file mode 100644 index 0000000..0eaa3a4 --- /dev/null +++ b/inc/aws-sdk/Aws/S3/Enum/EncodingType.php @@ -0,0 +1,27 @@ +setNext($next); + } + } + + public function makesDecision() + { + return true; + } + + protected function getDelay( + $retries, + RequestInterface $request, + Response $response = null, + HttpException $e = null + ) { + if ($response && $request->getMethod() === 'POST' + && $request instanceof EntityEnclosingRequestInterface + && $response->getStatusCode() == 200 + && strpos($request->getBody(), 'getBody(), 'get('Contents') ?: array(); $numObjects = count($objects); $lastKey = $numObjects ? $objects[$numObjects - 1]['Key'] : false; - if ($lastKey && !$result->hasKey($this->get('token_key'))) { - $result->set($this->get('token_key'), $lastKey); + if ($lastKey && !$result->hasKey($this->get('output_token'))) { + $result->set($this->get('output_token'), $lastKey); } // Closure for getting the name of an object or prefix diff --git a/inc/aws-sdk/Aws/S3/Model/Acp.php b/inc/aws-sdk/Aws/S3/Model/Acp.php index 8325a2b..9ddc3dd 100755 --- a/inc/aws-sdk/Aws/S3/Model/Acp.php +++ b/inc/aws-sdk/Aws/S3/Model/Acp.php @@ -54,7 +54,7 @@ class Acp implements ToArrayInterface, \IteratorAggregate, \Countable * * @param array $data Array of ACP data * - * @return self + * @return Acp */ public static function fromArray(array $data) { @@ -100,7 +100,7 @@ class Acp implements ToArrayInterface, \IteratorAggregate, \Countable * * @param Grantee $owner ACP policy owner * - * @return self + * @return $this * * @throws InvalidArgumentException if the grantee does not have an ID set */ @@ -130,7 +130,7 @@ class Acp implements ToArrayInterface, \IteratorAggregate, \Countable * * @param array|\Traversable $grants List of grants for the ACP * - * @return self + * @return $this * * @throws InvalidArgumentException */ @@ -140,7 +140,7 @@ class Acp implements ToArrayInterface, \IteratorAggregate, \Countable if ($grants) { if (is_array($grants) || $grants instanceof \Traversable) { - /** @var $grant Grant */ + /** @var Grant $grant */ foreach ($grants as $grant) { $this->addGrant($grant); } @@ -167,7 +167,7 @@ class Acp implements ToArrayInterface, \IteratorAggregate, \Countable * * @param Grant $grant Grant to add * - * @return self + * @return $this */ public function addGrant(Grant $grant) { @@ -205,13 +205,13 @@ class Acp implements ToArrayInterface, \IteratorAggregate, \Countable * * @param AbstractCommand $command Command to be updated * - * @return self + * @return $this */ public function updateCommand(AbstractCommand $command) { $parameters = array(); foreach ($this->grants as $grant) { - /** @var $grant Grant */ + /** @var Grant $grant */ $parameters = array_merge_recursive($parameters, $grant->getParameterArray()); } diff --git a/inc/aws-sdk/Aws/S3/Model/AcpBuilder.php b/inc/aws-sdk/Aws/S3/Model/AcpBuilder.php index 0e41c3c..b6d1be7 100755 --- a/inc/aws-sdk/Aws/S3/Model/AcpBuilder.php +++ b/inc/aws-sdk/Aws/S3/Model/AcpBuilder.php @@ -36,11 +36,11 @@ class AcpBuilder /** * Static method for chainable instantiation * - * @return self + * @return static */ public static function newInstance() { - return new self; + return new static; } /** @@ -49,7 +49,7 @@ class AcpBuilder * @param string $id Owner identifier * @param string $displayName Owner display name * - * @return self + * @return $this */ public function setOwner($id, $displayName = null) { @@ -65,7 +65,7 @@ class AcpBuilder * @param string $id Grantee identifier * @param string $displayName Grantee display name * - * @return self + * @return $this */ public function addGrantForUser($permission, $id, $displayName = null) { @@ -81,7 +81,7 @@ class AcpBuilder * @param string $permission Permission for the Grant * @param string $email Grantee email address * - * @return self + * @return $this */ public function addGrantForEmail($permission, $email) { @@ -97,7 +97,7 @@ class AcpBuilder * @param string $permission Permission for the Grant * @param string $group Grantee group * - * @return self + * @return $this */ public function addGrantForGroup($permission, $group) { @@ -113,7 +113,7 @@ class AcpBuilder * @param string $permission Permission for the Grant * @param Grantee $grantee The Grantee for the Grant * - * @return self + * @return $this */ public function addGrant($permission, Grantee $grantee) { diff --git a/inc/aws-sdk/Aws/S3/Model/ClearBucket.php b/inc/aws-sdk/Aws/S3/Model/ClearBucket.php index 77ce937..09982d8 100755 --- a/inc/aws-sdk/Aws/S3/Model/ClearBucket.php +++ b/inc/aws-sdk/Aws/S3/Model/ClearBucket.php @@ -81,7 +81,7 @@ class ClearBucket extends AbstractHasDispatcher * * @param string $bucket Name of the bucket to clear * - * @return self + * @return $this */ public function setBucket($bucket) { @@ -114,7 +114,7 @@ class ClearBucket extends AbstractHasDispatcher * * @param \Iterator $iterator Iterator used to yield the keys to be deleted * - * @return self + * @return $this */ public function setIterator(\Iterator $iterator) { @@ -129,7 +129,7 @@ class ClearBucket extends AbstractHasDispatcher * @param string $mfa MFA token to send with each request. The value is the concatenation of the authentication * device's serial number, a space, and the value displayed on your authentication device. * - * @return self + * @return $this */ public function setMfa($mfa) { diff --git a/inc/aws-sdk/Aws/S3/Model/DeleteObjectsBatch.php b/inc/aws-sdk/Aws/S3/Model/DeleteObjectsBatch.php index 17d8af3..ab6425b 100755 --- a/inc/aws-sdk/Aws/S3/Model/DeleteObjectsBatch.php +++ b/inc/aws-sdk/Aws/S3/Model/DeleteObjectsBatch.php @@ -38,7 +38,7 @@ class DeleteObjectsBatch extends AbstractBatchDecorator * @param string $bucket Bucket that contains the objects to delete * @param string $mfa MFA token to use with the request * - * @return self + * @return static */ public static function factory(AwsClientInterface $client, $bucket, $mfa = null) { @@ -47,7 +47,7 @@ class DeleteObjectsBatch extends AbstractBatchDecorator ->transferWith(new DeleteObjectsTransfer($client, $bucket, $mfa)) ->build(); - return new self($batch); + return new static($batch); } /** @@ -56,7 +56,7 @@ class DeleteObjectsBatch extends AbstractBatchDecorator * @param string $key Key of the object * @param string $versionId VersionID of the object * - * @return self + * @return $this */ public function addKey($key, $versionId = null) { @@ -82,6 +82,6 @@ class DeleteObjectsBatch extends AbstractBatchDecorator throw new InvalidArgumentException('Item must be a DeleteObject command or array containing a Key and VersionId key.'); } - return $this->decoratedBatch->add($item); + return parent::add($item); } } diff --git a/inc/aws-sdk/Aws/S3/Model/DeleteObjectsTransfer.php b/inc/aws-sdk/Aws/S3/Model/DeleteObjectsTransfer.php index c3d3828..5918ff1 100755 --- a/inc/aws-sdk/Aws/S3/Model/DeleteObjectsTransfer.php +++ b/inc/aws-sdk/Aws/S3/Model/DeleteObjectsTransfer.php @@ -64,7 +64,7 @@ class DeleteObjectsTransfer implements BatchTransferInterface * * @param string $token MFA token * - * @return self + * @return $this */ public function setMfa($token) { diff --git a/inc/aws-sdk/Aws/S3/Model/Grant.php b/inc/aws-sdk/Aws/S3/Model/Grant.php index afc2757..2e35f05 100755 --- a/inc/aws-sdk/Aws/S3/Model/Grant.php +++ b/inc/aws-sdk/Aws/S3/Model/Grant.php @@ -63,7 +63,7 @@ class Grant implements ToArrayInterface * * @param Grantee $grantee Affected grantee * - * @return self + * @return $this */ public function setGrantee(Grantee $grantee) { @@ -87,7 +87,7 @@ class Grant implements ToArrayInterface * * @param string $permission Permission applied * - * @return self + * @return $this * * @throws InvalidArgumentException */ diff --git a/inc/aws-sdk/Aws/S3/Model/Grantee.php b/inc/aws-sdk/Aws/S3/Model/Grantee.php index f49c70f..7634b84 100755 --- a/inc/aws-sdk/Aws/S3/Model/Grantee.php +++ b/inc/aws-sdk/Aws/S3/Model/Grantee.php @@ -214,7 +214,7 @@ class Grantee implements ToArrayInterface */ public function getHeaderValue() { - $key = self::$headerMap[$this->type]; + $key = static::$headerMap[$this->type]; return "{$key}=\"{$this->id}\""; } diff --git a/inc/aws-sdk/Aws/S3/Model/MultipartUpload/AbstractTransfer.php b/inc/aws-sdk/Aws/S3/Model/MultipartUpload/AbstractTransfer.php index c48232d..b1a5734 100755 --- a/inc/aws-sdk/Aws/S3/Model/MultipartUpload/AbstractTransfer.php +++ b/inc/aws-sdk/Aws/S3/Model/MultipartUpload/AbstractTransfer.php @@ -70,7 +70,7 @@ abstract class AbstractTransfer extends CommonAbstractTransfer */ protected function complete() { - /** @var $part UploadPart */ + /** @var UploadPart $part */ $parts = array(); foreach ($this->state as $part) { $parts[] = array( @@ -95,7 +95,7 @@ abstract class AbstractTransfer extends CommonAbstractTransfer $params = $this->state->getUploadId()->toParams(); $params[Ua::OPTION] = Ua::MULTIPART_UPLOAD; - /** @var $command OperationCommand */ + /** @var OperationCommand $command */ $command = $this->client->getCommand('AbortMultipartUpload', $params); return $command; diff --git a/inc/aws-sdk/Aws/S3/Model/MultipartUpload/ParallelTransfer.php b/inc/aws-sdk/Aws/S3/Model/MultipartUpload/ParallelTransfer.php index caa9e88..b42c3c4 100755 --- a/inc/aws-sdk/Aws/S3/Model/MultipartUpload/ParallelTransfer.php +++ b/inc/aws-sdk/Aws/S3/Model/MultipartUpload/ParallelTransfer.php @@ -87,12 +87,12 @@ class ParallelTransfer extends AbstractTransfer } // Execute each command, iterate over the results, and add to the transfer state - /** @var $command \Guzzle\Service\Command\OperationCommand */ + /** @var \Guzzle\Service\Command\OperationCommand $command */ foreach ($this->client->execute($commands) as $command) { $this->state->addPart(UploadPart::fromArray(array( - 'PartNumber' => count($this->state) + 1, + 'PartNumber' => $command['PartNumber'], 'ETag' => $command->getResponse()->getEtag(), - 'Size' => (int) $command->getResponse()->getContentLength(), + 'Size' => (int) $command->getRequest()->getBody()->getContentLength(), 'LastModified' => gmdate(DateFormat::RFC2822) ))); $eventData['command'] = $command; diff --git a/inc/aws-sdk/Aws/S3/Model/MultipartUpload/SerialTransfer.php b/inc/aws-sdk/Aws/S3/Model/MultipartUpload/SerialTransfer.php index 4a5953f..2840dd5 100755 --- a/inc/aws-sdk/Aws/S3/Model/MultipartUpload/SerialTransfer.php +++ b/inc/aws-sdk/Aws/S3/Model/MultipartUpload/SerialTransfer.php @@ -73,7 +73,7 @@ class SerialTransfer extends AbstractTransfer $response = $command->getResponse(); $this->state->addPart(UploadPart::fromArray(array( - 'PartNumber' => count($this->state) + 1, + 'PartNumber' => $command['PartNumber'], 'ETag' => $response->getEtag(), 'Size' => $body->getContentLength(), 'LastModified' => gmdate(DateFormat::RFC2822) diff --git a/inc/aws-sdk/Aws/S3/Model/MultipartUpload/UploadBuilder.php b/inc/aws-sdk/Aws/S3/Model/MultipartUpload/UploadBuilder.php index 4d27f3f..e30f23a 100755 --- a/inc/aws-sdk/Aws/S3/Model/MultipartUpload/UploadBuilder.php +++ b/inc/aws-sdk/Aws/S3/Model/MultipartUpload/UploadBuilder.php @@ -67,7 +67,7 @@ class UploadBuilder extends AbstractUploadBuilder * * @param string $bucket Name of the bucket * - * @return self + * @return $this */ public function setBucket($bucket) { @@ -79,7 +79,7 @@ class UploadBuilder extends AbstractUploadBuilder * * @param string $key Key of the object to upload * - * @return self + * @return $this */ public function setKey($key) { @@ -91,7 +91,7 @@ class UploadBuilder extends AbstractUploadBuilder * * @param int $minSize Minimum acceptable part size in bytes * - * @return self + * @return $this */ public function setMinPartSize($minSize) { @@ -107,7 +107,7 @@ class UploadBuilder extends AbstractUploadBuilder * * @param int $concurrency Concurrency level * - * @return self + * @return $this */ public function setConcurrency($concurrency) { @@ -121,7 +121,7 @@ class UploadBuilder extends AbstractUploadBuilder * * @param string $md5 MD5 hash of the entire body * - * @return self + * @return $this */ public function setMd5($md5) { @@ -137,7 +137,7 @@ class UploadBuilder extends AbstractUploadBuilder * * @param bool $calculateMd5 Set to true to calculate the MD5 hash of the body * - * @return self + * @return $this */ public function calculateMd5($calculateMd5) { @@ -152,7 +152,7 @@ class UploadBuilder extends AbstractUploadBuilder * * @param bool $usePartMd5 Set to true to calculate the MD5 has of each part * - * @return self + * @return $this */ public function calculatePartMd5($usePartMd5) { @@ -166,7 +166,7 @@ class UploadBuilder extends AbstractUploadBuilder * * @param Acp $acp ACP to set on the object * - * @return self + * @return $this */ public function setAcp(Acp $acp) { @@ -179,7 +179,7 @@ class UploadBuilder extends AbstractUploadBuilder * @param string $name Option name * @param string $value Option value * - * @return self + * @return $this */ public function setOption($name, $value) { @@ -193,7 +193,7 @@ class UploadBuilder extends AbstractUploadBuilder * * @param array $options Array of CreateMultipartUpload operation parameters * - * @return self + * @return $this */ public function addOptions(array $options) { @@ -207,7 +207,7 @@ class UploadBuilder extends AbstractUploadBuilder * * @param array $options Transfer options * - * @return self + * @return $this */ public function setTransferOptions(array $options) { @@ -265,8 +265,10 @@ class UploadBuilder extends AbstractUploadBuilder protected function initiateMultipartUpload() { // Determine Content-Type - if ($mimeType = $this->source->getContentType()) { - $this->commandOptions['ContentType'] = $mimeType; + if (!isset($this->commandOptions['ContentType'])) { + if ($mimeType = $this->source->getContentType()) { + $this->commandOptions['ContentType'] = $mimeType; + } } $params = array_replace(array( diff --git a/inc/aws-sdk/Aws/S3/Model/PostObject.php b/inc/aws-sdk/Aws/S3/Model/PostObject.php index 1a366f0..0aa2dbc 100755 --- a/inc/aws-sdk/Aws/S3/Model/PostObject.php +++ b/inc/aws-sdk/Aws/S3/Model/PostObject.php @@ -67,12 +67,19 @@ class PostObject extends Collection * - key: The location where the file should be uploaded to. The default value is * `^${filename}` which will use the name of the uploaded file * - policy: A raw policy in JSON format. By default, the PostObject creates one for you + * - policy_callback: A callback used to modify the policy before encoding and signing it. The + * method signature for the callback should accept an array of the policy data as + * the 1st argument, (optionally) the PostObject as the 2nd argument, and return + * the policy data with the desired modifications. * - success_action_redirect: The URI for Amazon S3 to redirect to upon successful upload * - success_action_status: The status code for Amazon S3 to return upon successful upload * - ttd: The expiration time for the generated upload form data + * - x-amz-meta-*: Any custom meta tag that should be set to the object * - x-amz-server-side-encryption: The server-side encryption mechanism to use * - x-amz-storage-class: The storage setting to apply to the object - * - x-amz-meta-*: Any custom meta tag that should be set to the object + * - x-amz-server-side​-encryption​-customer-algorithm: The SSE-C algorithm + * - x-amz-server-side​-encryption​-customer-key: The SSE-C customer secret key + * - x-amz-server-side​-encryption​-customer-key-MD5: The MD5 hash of the SSE-C customer secret key * * For the Cache-Control, Content-Disposition, Content-Encoding, * Content-Type, Expires, and key options, to use a "starts-with" comparison @@ -109,9 +116,10 @@ class PostObject extends Collection $ttd = is_numeric($ttd) ? (int) $ttd : strtotime($ttd); unset($options['ttd']); - // Save policy if passed in - $rawPolicy = $options['policy']; - unset($options['policy']); + // If a policy or policy callback were provided, extract those from the options + $rawJsonPolicy = $options['policy']; + $policyCallback = $options['policy_callback']; + unset($options['policy'], $options['policy_callback']); // Setup policy document $policy = array( @@ -121,7 +129,13 @@ class PostObject extends Collection // Configure the endpoint/action $url = Url::factory($this->client->getBaseUrl()); - $url->setHost($this->bucket . '.' . $url->getHost()); + if ($url->getScheme() === 'https' && strpos($this->bucket, '.') !== false) { + // Use path-style URLs + $url->setPath($this->bucket); + } else { + // Use virtual-style URLs + $url->setHost($this->bucket . '.' . $url->getHost()); + } // Setup basic form $this->formAttributes = array( @@ -140,7 +154,7 @@ class PostObject extends Collection $policy['conditions'][] = array( 'success_action_status' => (string) $status ); - $options->remove('success_action_status'); + unset($options['success_action_status']); } // Add other options @@ -157,18 +171,10 @@ class PostObject extends Collection } } - // Add policy - $this->jsonPolicy = $rawPolicy ?: json_encode($policy); - $jsonPolicy64 = base64_encode($this->jsonPolicy); - $this->formInputs['policy'] = $jsonPolicy64; - - // Add signature - $this->formInputs['signature'] = base64_encode(hash_hmac( - 'sha1', - $jsonPolicy64, - $this->client->getCredentials()->getSecretKey(), - true - )); + // Handle the policy + $policy = is_callable($policyCallback) ? $policyCallback($policy, $this) : $policy; + $this->jsonPolicy = $rawJsonPolicy ?: json_encode($policy); + $this->applyPolicy(); return $this; } @@ -250,4 +256,20 @@ class PostObject extends Collection { return $this->jsonPolicy; } + + /** + * Handles the encoding, singing, and injecting of the policy + */ + protected function applyPolicy() + { + $jsonPolicy64 = base64_encode($this->jsonPolicy); + $this->formInputs['policy'] = $jsonPolicy64; + + $this->formInputs['signature'] = base64_encode(hash_hmac( + 'sha1', + $jsonPolicy64, + $this->client->getCredentials()->getSecretKey(), + true + )); + } } diff --git a/inc/aws-sdk/Aws/S3/Resources/s3-2006-03-01.php b/inc/aws-sdk/Aws/S3/Resources/s3-2006-03-01.php index 4bf489d..5699058 100755 --- a/inc/aws-sdk/Aws/S3/Resources/s3-2006-03-01.php +++ b/inc/aws-sdk/Aws/S3/Resources/s3-2006-03-01.php @@ -45,6 +45,11 @@ return array ( 'https' => true, 'hostname' => 's3-eu-west-1.amazonaws.com', ), + 'eu-central-1' => array( + 'http' => true, + 'https' => true, + 'hostname' => 's3-eu-central-1.amazonaws.com', + ), 'ap-northeast-1' => array( 'http' => true, 'https' => true, @@ -65,6 +70,11 @@ return array ( 'https' => true, 'hostname' => 's3-sa-east-1.amazonaws.com', ), + 'cn-north-1' => array( + 'http' => true, + 'https' => true, + 'hostname' => 's3.cn-north-1.amazonaws.com.cn', + ), 'us-gov-west-1' => array( 'http' => true, 'https' => true, @@ -99,6 +109,11 @@ return array ( 'location' => 'query', 'sentAs' => 'uploadId', ), + 'RequestPayer' => array( + 'type' => 'string', + 'location' => 'header', + 'sentAs' => 'x-amz-request-payer', + ), ), 'errorResponses' => array( array( @@ -143,6 +158,7 @@ return array ( 'xmlFlattened' => true, ), 'items' => array( + 'name' => 'CompletedPart', 'type' => 'object', 'sentAs' => 'Part', 'properties' => array( @@ -161,6 +177,11 @@ return array ( 'location' => 'query', 'sentAs' => 'uploadId', ), + 'RequestPayer' => array( + 'type' => 'string', + 'location' => 'header', + 'sentAs' => 'x-amz-request-payer', + ), 'command.expects' => array( 'static' => true, 'default' => 'application/xml', @@ -174,19 +195,19 @@ return array ( 'responseClass' => 'CopyObjectOutput', 'responseType' => 'model', 'documentationUrl' => 'http://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectCOPY.html', + 'data' => array( + 'xmlRoot' => array( + 'name' => 'CopyObjectRequest', + 'namespaces' => array( + 'http://s3.amazonaws.com/doc/2006-03-01/', + ), + ), + ), 'parameters' => array( 'ACL' => array( 'type' => 'string', 'location' => 'header', 'sentAs' => 'x-amz-acl', - 'enum' => array( - 'private', - 'public-read', - 'public-read-write', - 'authenticated-read', - 'bucket-owner-read', - 'bucket-owner-full-control', - ), ), 'Bucket' => array( 'required' => true, @@ -225,12 +246,7 @@ return array ( 'sentAs' => 'x-amz-copy-source', ), 'CopySourceIfMatch' => array( - 'type' => array( - 'object', - 'string', - 'integer', - ), - 'format' => 'date-time-http', + 'type' => 'string', 'location' => 'header', 'sentAs' => 'x-amz-copy-source-if-match', ), @@ -245,12 +261,7 @@ return array ( 'sentAs' => 'x-amz-copy-source-if-modified-since', ), 'CopySourceIfNoneMatch' => array( - 'type' => array( - 'object', - 'string', - 'integer', - ), - 'format' => 'date-time-http', + 'type' => 'string', 'location' => 'header', 'sentAs' => 'x-amz-copy-source-if-none-match', ), @@ -313,33 +324,62 @@ return array ( 'type' => 'string', 'location' => 'header', 'sentAs' => 'x-amz-metadata-directive', - 'enum' => array( - 'COPY', - 'REPLACE', - ), ), 'ServerSideEncryption' => array( 'type' => 'string', 'location' => 'header', 'sentAs' => 'x-amz-server-side-encryption', - 'enum' => array( - 'AES256', - ), ), 'StorageClass' => array( 'type' => 'string', 'location' => 'header', 'sentAs' => 'x-amz-storage-class', - 'enum' => array( - 'STANDARD', - 'REDUCED_REDUNDANCY', - ), ), 'WebsiteRedirectLocation' => array( 'type' => 'string', 'location' => 'header', 'sentAs' => 'x-amz-website-redirect-location', ), + 'SSECustomerAlgorithm' => array( + 'type' => 'string', + 'location' => 'header', + 'sentAs' => 'x-amz-server-side-encryption-customer-algorithm', + ), + 'SSECustomerKey' => array( + 'type' => 'string', + 'location' => 'header', + 'sentAs' => 'x-amz-server-side-encryption-customer-key', + ), + 'SSECustomerKeyMD5' => array( + 'type' => 'string', + 'location' => 'header', + 'sentAs' => 'x-amz-server-side-encryption-customer-key-MD5', + ), + 'SSEKMSKeyId' => array( + 'type' => 'string', + 'location' => 'header', + 'sentAs' => 'x-amz-server-side-encryption-aws-kms-key-id', + ), + 'CopySourceSSECustomerAlgorithm' => array( + 'type' => 'string', + 'location' => 'header', + 'sentAs' => 'x-amz-copy-source-server-side-encryption-customer-algorithm', + ), + 'CopySourceSSECustomerKey' => array( + 'type' => 'string', + 'location' => 'header', + 'sentAs' => 'x-amz-copy-source-server-side-encryption-customer-key', + ), + 'CopySourceSSECustomerKeyMD5' => array( + 'type' => 'string', + 'location' => 'header', + 'sentAs' => 'x-amz-copy-source-server-side-encryption-customer-key-MD5', + ), + 'RequestPayer' => array( + 'type' => 'string', + 'location' => 'header', + 'sentAs' => 'x-amz-request-payer', + ), 'ACP' => array( 'type' => 'object', 'additionalProperties' => true, @@ -376,14 +416,6 @@ return array ( 'type' => 'string', 'location' => 'header', 'sentAs' => 'x-amz-acl', - 'enum' => array( - 'private', - 'public-read', - 'public-read-write', - 'authenticated-read', - 'bucket-owner-read', - 'bucket-owner-full-control', - ), ), 'Bucket' => array( 'required' => true, @@ -393,16 +425,6 @@ return array ( 'LocationConstraint' => array( 'type' => 'string', 'location' => 'xml', - 'enum' => array( - 'EU', - 'eu-west-1', - 'us-west-1', - 'us-west-2', - 'ap-southeast-1', - 'ap-southeast-2', - 'ap-northeast-1', - 'sa-east-1', - ), ), 'GrantFullControl' => array( 'type' => 'string', @@ -443,24 +465,24 @@ return array ( ), 'CreateMultipartUpload' => array( 'httpMethod' => 'POST', - 'uri' => '/{Bucket}{/Key*}', + 'uri' => '/{Bucket}{/Key*}?uploads', 'class' => 'Aws\\S3\\Command\\S3Command', 'responseClass' => 'CreateMultipartUploadOutput', 'responseType' => 'model', 'documentationUrl' => 'http://docs.aws.amazon.com/AmazonS3/latest/API/mpUploadInitiate.html', + 'data' => array( + 'xmlRoot' => array( + 'name' => 'CreateMultipartUploadRequest', + 'namespaces' => array( + 'http://s3.amazonaws.com/doc/2006-03-01/', + ), + ), + ), 'parameters' => array( 'ACL' => array( 'type' => 'string', 'location' => 'header', 'sentAs' => 'x-amz-acl', - 'enum' => array( - 'private', - 'public-read', - 'public-read-write', - 'authenticated-read', - 'bucket-owner-read', - 'bucket-owner-full-control', - ), ), 'Bucket' => array( 'required' => true, @@ -541,30 +563,41 @@ return array ( 'type' => 'string', 'location' => 'header', 'sentAs' => 'x-amz-server-side-encryption', - 'enum' => array( - 'AES256', - ), ), 'StorageClass' => array( 'type' => 'string', 'location' => 'header', 'sentAs' => 'x-amz-storage-class', - 'enum' => array( - 'STANDARD', - 'REDUCED_REDUNDANCY', - ), ), 'WebsiteRedirectLocation' => array( 'type' => 'string', 'location' => 'header', 'sentAs' => 'x-amz-website-redirect-location', ), - 'SubResource' => array( - 'required' => true, - 'static' => true, - 'location' => 'query', - 'sentAs' => 'uploads', - 'default' => '_guzzle_blank_', + 'SSECustomerAlgorithm' => array( + 'type' => 'string', + 'location' => 'header', + 'sentAs' => 'x-amz-server-side-encryption-customer-algorithm', + ), + 'SSECustomerKey' => array( + 'type' => 'string', + 'location' => 'header', + 'sentAs' => 'x-amz-server-side-encryption-customer-key', + ), + 'SSECustomerKeyMD5' => array( + 'type' => 'string', + 'location' => 'header', + 'sentAs' => 'x-amz-server-side-encryption-customer-key-MD5', + ), + 'SSEKMSKeyId' => array( + 'type' => 'string', + 'location' => 'header', + 'sentAs' => 'x-amz-server-side-encryption-aws-kms-key-id', + ), + 'RequestPayer' => array( + 'type' => 'string', + 'location' => 'header', + 'sentAs' => 'x-amz-request-payer', ), 'ACP' => array( 'type' => 'object', @@ -593,7 +626,7 @@ return array ( ), 'DeleteBucketCors' => array( 'httpMethod' => 'DELETE', - 'uri' => '/{Bucket}', + 'uri' => '/{Bucket}?cors', 'class' => 'Aws\\S3\\Command\\S3Command', 'responseClass' => 'DeleteBucketCorsOutput', 'responseType' => 'model', @@ -604,18 +637,11 @@ return array ( 'type' => 'string', 'location' => 'uri', ), - 'SubResource' => array( - 'required' => true, - 'static' => true, - 'location' => 'query', - 'sentAs' => 'cors', - 'default' => '_guzzle_blank_', - ), ), ), 'DeleteBucketLifecycle' => array( 'httpMethod' => 'DELETE', - 'uri' => '/{Bucket}', + 'uri' => '/{Bucket}?lifecycle', 'class' => 'Aws\\S3\\Command\\S3Command', 'responseClass' => 'DeleteBucketLifecycleOutput', 'responseType' => 'model', @@ -626,18 +652,11 @@ return array ( 'type' => 'string', 'location' => 'uri', ), - 'SubResource' => array( - 'required' => true, - 'static' => true, - 'location' => 'query', - 'sentAs' => 'lifecycle', - 'default' => '_guzzle_blank_', - ), ), ), 'DeleteBucketPolicy' => array( 'httpMethod' => 'DELETE', - 'uri' => '/{Bucket}', + 'uri' => '/{Bucket}?policy', 'class' => 'Aws\\S3\\Command\\S3Command', 'responseClass' => 'DeleteBucketPolicyOutput', 'responseType' => 'model', @@ -648,18 +667,25 @@ return array ( 'type' => 'string', 'location' => 'uri', ), - 'SubResource' => array( + ), + ), + 'DeleteBucketReplication' => array( + 'httpMethod' => 'DELETE', + 'uri' => '/{Bucket}?replication', + 'class' => 'Aws\\S3\\Command\\S3Command', + 'responseClass' => 'DeleteBucketReplicationOutput', + 'responseType' => 'model', + 'parameters' => array( + 'Bucket' => array( 'required' => true, - 'static' => true, - 'location' => 'query', - 'sentAs' => 'policy', - 'default' => '_guzzle_blank_', + 'type' => 'string', + 'location' => 'uri', ), ), ), 'DeleteBucketTagging' => array( 'httpMethod' => 'DELETE', - 'uri' => '/{Bucket}', + 'uri' => '/{Bucket}?tagging', 'class' => 'Aws\\S3\\Command\\S3Command', 'responseClass' => 'DeleteBucketTaggingOutput', 'responseType' => 'model', @@ -670,18 +696,11 @@ return array ( 'type' => 'string', 'location' => 'uri', ), - 'SubResource' => array( - 'required' => true, - 'static' => true, - 'location' => 'query', - 'sentAs' => 'tagging', - 'default' => '_guzzle_blank_', - ), ), ), 'DeleteBucketWebsite' => array( 'httpMethod' => 'DELETE', - 'uri' => '/{Bucket}', + 'uri' => '/{Bucket}?website', 'class' => 'Aws\\S3\\Command\\S3Command', 'responseClass' => 'DeleteBucketWebsiteOutput', 'responseType' => 'model', @@ -692,13 +711,6 @@ return array ( 'type' => 'string', 'location' => 'uri', ), - 'SubResource' => array( - 'required' => true, - 'static' => true, - 'location' => 'query', - 'sentAs' => 'website', - 'default' => '_guzzle_blank_', - ), ), ), 'DeleteObject' => array( @@ -732,11 +744,16 @@ return array ( 'location' => 'query', 'sentAs' => 'versionId', ), + 'RequestPayer' => array( + 'type' => 'string', + 'location' => 'header', + 'sentAs' => 'x-amz-request-payer', + ), ), ), 'DeleteObjects' => array( 'httpMethod' => 'POST', - 'uri' => '/{Bucket}', + 'uri' => '/{Bucket}?delete', 'class' => 'Aws\\S3\\Command\\S3Command', 'responseClass' => 'DeleteObjectsOutput', 'responseType' => 'model', @@ -748,6 +765,7 @@ return array ( 'http://s3.amazonaws.com/doc/2006-03-01/', ), ), + 'contentMd5' => true, ), 'parameters' => array( 'Bucket' => array( @@ -763,6 +781,7 @@ return array ( 'xmlFlattened' => true, ), 'items' => array( + 'name' => 'ObjectIdentifier', 'type' => 'object', 'sentAs' => 'Object', 'properties' => array( @@ -786,16 +805,10 @@ return array ( 'location' => 'header', 'sentAs' => 'x-amz-mfa', ), - 'SubResource' => array( - 'required' => true, - 'static' => true, - 'location' => 'query', - 'sentAs' => 'delete', - 'default' => '_guzzle_blank_', - ), - 'ContentMD5' => array( - 'required' => true, - 'default' => true, + 'RequestPayer' => array( + 'type' => 'string', + 'location' => 'header', + 'sentAs' => 'x-amz-request-payer', ), 'command.expects' => array( 'static' => true, @@ -805,7 +818,7 @@ return array ( ), 'GetBucketAcl' => array( 'httpMethod' => 'GET', - 'uri' => '/{Bucket}', + 'uri' => '/{Bucket}?acl', 'class' => 'Aws\\S3\\Command\\S3Command', 'responseClass' => 'GetBucketAclOutput', 'responseType' => 'model', @@ -816,13 +829,6 @@ return array ( 'type' => 'string', 'location' => 'uri', ), - 'SubResource' => array( - 'required' => true, - 'static' => true, - 'location' => 'query', - 'sentAs' => 'acl', - 'default' => '_guzzle_blank_', - ), 'command.expects' => array( 'static' => true, 'default' => 'application/xml', @@ -831,7 +837,7 @@ return array ( ), 'GetBucketCors' => array( 'httpMethod' => 'GET', - 'uri' => '/{Bucket}', + 'uri' => '/{Bucket}?cors', 'class' => 'Aws\\S3\\Command\\S3Command', 'responseClass' => 'GetBucketCorsOutput', 'responseType' => 'model', @@ -842,13 +848,6 @@ return array ( 'type' => 'string', 'location' => 'uri', ), - 'SubResource' => array( - 'required' => true, - 'static' => true, - 'location' => 'query', - 'sentAs' => 'cors', - 'default' => '_guzzle_blank_', - ), 'command.expects' => array( 'static' => true, 'default' => 'application/xml', @@ -857,7 +856,7 @@ return array ( ), 'GetBucketLifecycle' => array( 'httpMethod' => 'GET', - 'uri' => '/{Bucket}', + 'uri' => '/{Bucket}?lifecycle', 'class' => 'Aws\\S3\\Command\\S3Command', 'responseClass' => 'GetBucketLifecycleOutput', 'responseType' => 'model', @@ -868,13 +867,6 @@ return array ( 'type' => 'string', 'location' => 'uri', ), - 'SubResource' => array( - 'required' => true, - 'static' => true, - 'location' => 'query', - 'sentAs' => 'lifecycle', - 'default' => '_guzzle_blank_', - ), 'command.expects' => array( 'static' => true, 'default' => 'application/xml', @@ -883,7 +875,7 @@ return array ( ), 'GetBucketLocation' => array( 'httpMethod' => 'GET', - 'uri' => '/{Bucket}', + 'uri' => '/{Bucket}?location', 'class' => 'Aws\\S3\\Command\\S3Command', 'responseClass' => 'GetBucketLocationOutput', 'responseType' => 'model', @@ -894,18 +886,11 @@ return array ( 'type' => 'string', 'location' => 'uri', ), - 'SubResource' => array( - 'required' => true, - 'static' => true, - 'location' => 'query', - 'sentAs' => 'location', - 'default' => '_guzzle_blank_', - ), ), ), 'GetBucketLogging' => array( 'httpMethod' => 'GET', - 'uri' => '/{Bucket}', + 'uri' => '/{Bucket}?logging', 'class' => 'Aws\\S3\\Command\\S3Command', 'responseClass' => 'GetBucketLoggingOutput', 'responseType' => 'model', @@ -916,13 +901,6 @@ return array ( 'type' => 'string', 'location' => 'uri', ), - 'SubResource' => array( - 'required' => true, - 'static' => true, - 'location' => 'query', - 'sentAs' => 'logging', - 'default' => '_guzzle_blank_', - ), 'command.expects' => array( 'static' => true, 'default' => 'application/xml', @@ -931,9 +909,9 @@ return array ( ), 'GetBucketNotification' => array( 'httpMethod' => 'GET', - 'uri' => '/{Bucket}', + 'uri' => '/{Bucket}?notification', 'class' => 'Aws\\S3\\Command\\S3Command', - 'responseClass' => 'GetBucketNotificationOutput', + 'responseClass' => 'NotificationConfigurationDeprecated', 'responseType' => 'model', 'documentationUrl' => 'http://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGETnotification.html', 'parameters' => array( @@ -942,12 +920,23 @@ return array ( 'type' => 'string', 'location' => 'uri', ), - 'SubResource' => array( - 'required' => true, + 'command.expects' => array( 'static' => true, - 'location' => 'query', - 'sentAs' => 'notification', - 'default' => '_guzzle_blank_', + 'default' => 'application/xml', + ), + ), + ), + 'GetBucketNotificationConfiguration' => array( + 'httpMethod' => 'GET', + 'uri' => '/{Bucket}?notification', + 'class' => 'Aws\\S3\\Command\\S3Command', + 'responseClass' => 'NotificationConfiguration', + 'responseType' => 'model', + 'parameters' => array( + 'Bucket' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'uri', ), 'command.expects' => array( 'static' => true, @@ -957,7 +946,7 @@ return array ( ), 'GetBucketPolicy' => array( 'httpMethod' => 'GET', - 'uri' => '/{Bucket}', + 'uri' => '/{Bucket}?policy', 'class' => 'Aws\\S3\\Command\\S3Command', 'responseClass' => 'GetBucketPolicyOutput', 'responseType' => 'model', @@ -968,18 +957,29 @@ return array ( 'type' => 'string', 'location' => 'uri', ), - 'SubResource' => array( + ), + ), + 'GetBucketReplication' => array( + 'httpMethod' => 'GET', + 'uri' => '/{Bucket}?replication', + 'class' => 'Aws\\S3\\Command\\S3Command', + 'responseClass' => 'GetBucketReplicationOutput', + 'responseType' => 'model', + 'parameters' => array( + 'Bucket' => array( 'required' => true, + 'type' => 'string', + 'location' => 'uri', + ), + 'command.expects' => array( 'static' => true, - 'location' => 'query', - 'sentAs' => 'policy', - 'default' => '_guzzle_blank_', + 'default' => 'application/xml', ), ), ), 'GetBucketRequestPayment' => array( 'httpMethod' => 'GET', - 'uri' => '/{Bucket}', + 'uri' => '/{Bucket}?requestPayment', 'class' => 'Aws\\S3\\Command\\S3Command', 'responseClass' => 'GetBucketRequestPaymentOutput', 'responseType' => 'model', @@ -990,13 +990,6 @@ return array ( 'type' => 'string', 'location' => 'uri', ), - 'SubResource' => array( - 'required' => true, - 'static' => true, - 'location' => 'query', - 'sentAs' => 'requestPayment', - 'default' => '_guzzle_blank_', - ), 'command.expects' => array( 'static' => true, 'default' => 'application/xml', @@ -1005,7 +998,7 @@ return array ( ), 'GetBucketTagging' => array( 'httpMethod' => 'GET', - 'uri' => '/{Bucket}', + 'uri' => '/{Bucket}?tagging', 'class' => 'Aws\\S3\\Command\\S3Command', 'responseClass' => 'GetBucketTaggingOutput', 'responseType' => 'model', @@ -1016,13 +1009,6 @@ return array ( 'type' => 'string', 'location' => 'uri', ), - 'SubResource' => array( - 'required' => true, - 'static' => true, - 'location' => 'query', - 'sentAs' => 'tagging', - 'default' => '_guzzle_blank_', - ), 'command.expects' => array( 'static' => true, 'default' => 'application/xml', @@ -1031,7 +1017,7 @@ return array ( ), 'GetBucketVersioning' => array( 'httpMethod' => 'GET', - 'uri' => '/{Bucket}', + 'uri' => '/{Bucket}?versioning', 'class' => 'Aws\\S3\\Command\\S3Command', 'responseClass' => 'GetBucketVersioningOutput', 'responseType' => 'model', @@ -1042,13 +1028,6 @@ return array ( 'type' => 'string', 'location' => 'uri', ), - 'SubResource' => array( - 'required' => true, - 'static' => true, - 'location' => 'query', - 'sentAs' => 'versioning', - 'default' => '_guzzle_blank_', - ), 'command.expects' => array( 'static' => true, 'default' => 'application/xml', @@ -1057,7 +1036,7 @@ return array ( ), 'GetBucketWebsite' => array( 'httpMethod' => 'GET', - 'uri' => '/{Bucket}', + 'uri' => '/{Bucket}?website', 'class' => 'Aws\\S3\\Command\\S3Command', 'responseClass' => 'GetBucketWebsiteOutput', 'responseType' => 'model', @@ -1068,13 +1047,6 @@ return array ( 'type' => 'string', 'location' => 'uri', ), - 'SubResource' => array( - 'required' => true, - 'static' => true, - 'location' => 'query', - 'sentAs' => 'website', - 'default' => '_guzzle_blank_', - ), 'command.expects' => array( 'static' => true, 'default' => 'application/xml', @@ -1176,6 +1148,26 @@ return array ( 'location' => 'query', 'sentAs' => 'versionId', ), + 'SSECustomerAlgorithm' => array( + 'type' => 'string', + 'location' => 'header', + 'sentAs' => 'x-amz-server-side-encryption-customer-algorithm', + ), + 'SSECustomerKey' => array( + 'type' => 'string', + 'location' => 'header', + 'sentAs' => 'x-amz-server-side-encryption-customer-key', + ), + 'SSECustomerKeyMD5' => array( + 'type' => 'string', + 'location' => 'header', + 'sentAs' => 'x-amz-server-side-encryption-customer-key-MD5', + ), + 'RequestPayer' => array( + 'type' => 'string', + 'location' => 'header', + 'sentAs' => 'x-amz-request-payer', + ), 'SaveAs' => array( 'location' => 'response_body', ), @@ -1189,7 +1181,7 @@ return array ( ), 'GetObjectAcl' => array( 'httpMethod' => 'GET', - 'uri' => '/{Bucket}{/Key*}', + 'uri' => '/{Bucket}{/Key*}?acl', 'class' => 'Aws\\S3\\Command\\S3Command', 'responseClass' => 'GetObjectAclOutput', 'responseType' => 'model', @@ -1213,12 +1205,10 @@ return array ( 'location' => 'query', 'sentAs' => 'versionId', ), - 'SubResource' => array( - 'required' => true, - 'static' => true, - 'location' => 'query', - 'sentAs' => 'acl', - 'default' => '_guzzle_blank_', + 'RequestPayer' => array( + 'type' => 'string', + 'location' => 'header', + 'sentAs' => 'x-amz-request-payer', ), 'command.expects' => array( 'static' => true, @@ -1234,7 +1224,7 @@ return array ( ), 'GetObjectTorrent' => array( 'httpMethod' => 'GET', - 'uri' => '/{Bucket}{/Key*}', + 'uri' => '/{Bucket}{/Key*}?torrent', 'class' => 'Aws\\S3\\Command\\S3Command', 'responseClass' => 'GetObjectTorrentOutput', 'responseType' => 'model', @@ -1253,12 +1243,10 @@ return array ( 'Aws\\S3\\S3Client::explodeKey', ), ), - 'SubResource' => array( - 'required' => true, - 'static' => true, - 'location' => 'query', - 'sentAs' => 'torrent', - 'default' => '_guzzle_blank_', + 'RequestPayer' => array( + 'type' => 'string', + 'location' => 'header', + 'sentAs' => 'x-amz-request-payer', ), ), ), @@ -1343,6 +1331,26 @@ return array ( 'location' => 'query', 'sentAs' => 'versionId', ), + 'SSECustomerAlgorithm' => array( + 'type' => 'string', + 'location' => 'header', + 'sentAs' => 'x-amz-server-side-encryption-customer-algorithm', + ), + 'SSECustomerKey' => array( + 'type' => 'string', + 'location' => 'header', + 'sentAs' => 'x-amz-server-side-encryption-customer-key', + ), + 'SSECustomerKeyMD5' => array( + 'type' => 'string', + 'location' => 'header', + 'sentAs' => 'x-amz-server-side-encryption-customer-key-MD5', + ), + 'RequestPayer' => array( + 'type' => 'string', + 'location' => 'header', + 'sentAs' => 'x-amz-request-payer', + ), ), 'errorResponses' => array( array( @@ -1367,7 +1375,7 @@ return array ( ), 'ListMultipartUploads' => array( 'httpMethod' => 'GET', - 'uri' => '/{Bucket}', + 'uri' => '/{Bucket}?uploads', 'class' => 'Aws\\S3\\Command\\S3Command', 'responseClass' => 'ListMultipartUploadsOutput', 'responseType' => 'model', @@ -1383,6 +1391,11 @@ return array ( 'location' => 'query', 'sentAs' => 'delimiter', ), + 'EncodingType' => array( + 'type' => 'string', + 'location' => 'query', + 'sentAs' => 'encoding-type', + ), 'KeyMarker' => array( 'type' => 'string', 'location' => 'query', @@ -1403,13 +1416,6 @@ return array ( 'location' => 'query', 'sentAs' => 'upload-id-marker', ), - 'SubResource' => array( - 'required' => true, - 'static' => true, - 'location' => 'query', - 'sentAs' => 'uploads', - 'default' => '_guzzle_blank_', - ), 'command.expects' => array( 'static' => true, 'default' => 'application/xml', @@ -1418,7 +1424,7 @@ return array ( ), 'ListObjectVersions' => array( 'httpMethod' => 'GET', - 'uri' => '/{Bucket}', + 'uri' => '/{Bucket}?versions', 'class' => 'Aws\\S3\\Command\\S3Command', 'responseClass' => 'ListObjectVersionsOutput', 'responseType' => 'model', @@ -1434,7 +1440,12 @@ return array ( 'location' => 'query', 'sentAs' => 'delimiter', ), - 'KeyMarker' => array( + 'EncodingType' => array( + 'type' => 'string', + 'location' => 'query', + 'sentAs' => 'encoding-type', + ), + 'KeyMarker' => array( 'type' => 'string', 'location' => 'query', 'sentAs' => 'key-marker', @@ -1454,13 +1465,6 @@ return array ( 'location' => 'query', 'sentAs' => 'version-id-marker', ), - 'SubResource' => array( - 'required' => true, - 'static' => true, - 'location' => 'query', - 'sentAs' => 'versions', - 'default' => '_guzzle_blank_', - ), 'command.expects' => array( 'static' => true, 'default' => 'application/xml', @@ -1485,6 +1489,11 @@ return array ( 'location' => 'query', 'sentAs' => 'delimiter', ), + 'EncodingType' => array( + 'type' => 'string', + 'location' => 'query', + 'sentAs' => 'encoding-type', + ), 'Marker' => array( 'type' => 'string', 'location' => 'query', @@ -1539,7 +1548,7 @@ return array ( 'sentAs' => 'max-parts', ), 'PartNumberMarker' => array( - 'type' => 'string', + 'type' => 'numeric', 'location' => 'query', 'sentAs' => 'part-number-marker', ), @@ -1549,6 +1558,11 @@ return array ( 'location' => 'query', 'sentAs' => 'uploadId', ), + 'RequestPayer' => array( + 'type' => 'string', + 'location' => 'header', + 'sentAs' => 'x-amz-request-payer', + ), 'command.expects' => array( 'static' => true, 'default' => 'application/xml', @@ -1557,7 +1571,7 @@ return array ( ), 'PutBucketAcl' => array( 'httpMethod' => 'PUT', - 'uri' => '/{Bucket}', + 'uri' => '/{Bucket}?acl', 'class' => 'Aws\\S3\\Command\\S3Command', 'responseClass' => 'PutBucketAclOutput', 'responseType' => 'model', @@ -1575,14 +1589,6 @@ return array ( 'type' => 'string', 'location' => 'header', 'sentAs' => 'x-amz-acl', - 'enum' => array( - 'private', - 'public-read', - 'public-read-write', - 'authenticated-read', - 'bucket-owner-read', - 'bucket-owner-full-control', - ), ), 'Grants' => array( 'type' => 'array', @@ -1612,11 +1618,6 @@ return array ( 'xmlAttribute' => true, 'xmlNamespace' => 'http://www.w3.org/2001/XMLSchema-instance', ), - 'enum' => array( - 'CanonicalUser', - 'AmazonCustomerByEmail', - 'Group', - ), ), 'URI' => array( 'type' => 'string', @@ -1625,13 +1626,6 @@ return array ( ), 'Permission' => array( 'type' => 'string', - 'enum' => array( - 'FULL_CONTROL', - 'WRITE', - 'WRITE_ACP', - 'READ', - 'READ_ACP', - ), ), ), ), @@ -1653,9 +1647,6 @@ return array ( 'type' => 'string', 'location' => 'uri', ), - 'ContentMD5' => array( - 'default' => true, - ), 'GrantFullControl' => array( 'type' => 'string', 'location' => 'header', @@ -1681,13 +1672,6 @@ return array ( 'location' => 'header', 'sentAs' => 'x-amz-grant-write-acp', ), - 'SubResource' => array( - 'required' => true, - 'static' => true, - 'location' => 'query', - 'sentAs' => 'acl', - 'default' => '_guzzle_blank_', - ), 'ACP' => array( 'type' => 'object', 'additionalProperties' => true, @@ -1696,7 +1680,7 @@ return array ( ), 'PutBucketCors' => array( 'httpMethod' => 'PUT', - 'uri' => '/{Bucket}', + 'uri' => '/{Bucket}?cors', 'class' => 'Aws\\S3\\Command\\S3Command', 'responseClass' => 'PutBucketCorsOutput', 'responseType' => 'model', @@ -1708,6 +1692,7 @@ return array ( 'http://s3.amazonaws.com/doc/2006-03-01/', ), ), + 'contentMd5' => true, ), 'parameters' => array( 'Bucket' => array( @@ -1722,6 +1707,7 @@ return array ( 'xmlFlattened' => true, ), 'items' => array( + 'name' => 'CORSRule', 'type' => 'object', 'sentAs' => 'CORSRule', 'properties' => array( @@ -1731,6 +1717,7 @@ return array ( 'xmlFlattened' => true, ), 'items' => array( + 'name' => 'AllowedHeader', 'type' => 'string', 'sentAs' => 'AllowedHeader', ), @@ -1741,6 +1728,7 @@ return array ( 'xmlFlattened' => true, ), 'items' => array( + 'name' => 'AllowedMethod', 'type' => 'string', 'sentAs' => 'AllowedMethod', ), @@ -1751,6 +1739,7 @@ return array ( 'xmlFlattened' => true, ), 'items' => array( + 'name' => 'AllowedOrigin', 'type' => 'string', 'sentAs' => 'AllowedOrigin', ), @@ -1761,6 +1750,7 @@ return array ( 'xmlFlattened' => true, ), 'items' => array( + 'name' => 'ExposeHeader', 'type' => 'string', 'sentAs' => 'ExposeHeader', ), @@ -1771,21 +1761,11 @@ return array ( ), ), ), - 'ContentMD5' => array( - 'default' => true, - ), - 'SubResource' => array( - 'required' => true, - 'static' => true, - 'location' => 'query', - 'sentAs' => 'cors', - 'default' => '_guzzle_blank_', - ), ), ), 'PutBucketLifecycle' => array( 'httpMethod' => 'PUT', - 'uri' => '/{Bucket}', + 'uri' => '/{Bucket}?lifecycle', 'class' => 'Aws\\S3\\Command\\S3Command', 'responseClass' => 'PutBucketLifecycleOutput', 'responseType' => 'model', @@ -1797,6 +1777,7 @@ return array ( 'http://s3.amazonaws.com/doc/2006-03-01/', ), ), + 'contentMd5' => true, ), 'parameters' => array( 'Bucket' => array( @@ -1804,9 +1785,6 @@ return array ( 'type' => 'string', 'location' => 'uri', ), - 'ContentMD5' => array( - 'default' => true, - ), 'Rules' => array( 'required' => true, 'type' => 'array', @@ -1815,6 +1793,7 @@ return array ( 'xmlFlattened' => true, ), 'items' => array( + 'name' => 'Rule', 'type' => 'object', 'sentAs' => 'Rule', 'properties' => array( @@ -1844,10 +1823,6 @@ return array ( 'Status' => array( 'required' => true, 'type' => 'string', - 'enum' => array( - 'Enabled', - 'Disabled', - ), ), 'Transition' => array( 'type' => 'object', @@ -1865,29 +1840,36 @@ return array ( ), 'StorageClass' => array( 'type' => 'string', - 'enum' => array( - 'STANDARD', - 'REDUCED_REDUNDANCY', - 'GLACIER', - ), + ), + ), + ), + 'NoncurrentVersionTransition' => array( + 'type' => 'object', + 'properties' => array( + 'NoncurrentDays' => array( + 'type' => 'numeric', + ), + 'StorageClass' => array( + 'type' => 'string', + ), + ), + ), + 'NoncurrentVersionExpiration' => array( + 'type' => 'object', + 'properties' => array( + 'NoncurrentDays' => array( + 'type' => 'numeric', ), ), ), ), ), ), - 'SubResource' => array( - 'required' => true, - 'static' => true, - 'location' => 'query', - 'sentAs' => 'lifecycle', - 'default' => '_guzzle_blank_', - ), ), ), 'PutBucketLogging' => array( 'httpMethod' => 'PUT', - 'uri' => '/{Bucket}', + 'uri' => '/{Bucket}?logging', 'class' => 'Aws\\S3\\Command\\S3Command', 'responseClass' => 'PutBucketLoggingOutput', 'responseType' => 'model', @@ -1940,11 +1922,6 @@ return array ( 'xmlAttribute' => true, 'xmlNamespace' => 'http://www.w3.org/2001/XMLSchema-instance', ), - 'enum' => array( - 'CanonicalUser', - 'AmazonCustomerByEmail', - 'Group', - ), ), 'URI' => array( 'type' => 'string', @@ -1962,21 +1939,11 @@ return array ( ), ), ), - 'ContentMD5' => array( - 'default' => true, - ), - 'SubResource' => array( - 'required' => true, - 'static' => true, - 'location' => 'query', - 'sentAs' => 'logging', - 'default' => '_guzzle_blank_', - ), ), ), 'PutBucketNotification' => array( 'httpMethod' => 'PUT', - 'uri' => '/{Bucket}', + 'uri' => '/{Bucket}?notification', 'class' => 'Aws\\S3\\Command\\S3Command', 'responseClass' => 'PutBucketNotificationOutput', 'responseType' => 'model', @@ -1988,6 +1955,7 @@ return array ( 'http://s3.amazonaws.com/doc/2006-03-01/', ), ), + 'xmlAllowEmpty' => true, ), 'parameters' => array( 'Bucket' => array( @@ -1995,77 +1963,220 @@ return array ( 'type' => 'string', 'location' => 'uri', ), - 'ContentMD5' => array( - 'default' => true, - ), 'TopicConfiguration' => array( - 'required' => true, 'type' => 'object', 'location' => 'xml', 'properties' => array( - 'Event' => array( + 'Id' => array( 'type' => 'string', - 'enum' => array( - 's3:ReducedRedundancyLostObject', + ), + 'Events' => array( + 'type' => 'array', + 'data' => array( + 'xmlFlattened' => true, + ), + 'items' => array( + 'name' => 'Event', + 'type' => 'string', ), ), + 'Event' => array( + 'type' => 'string', + ), 'Topic' => array( 'type' => 'string', ), ), ), - 'SubResource' => array( - 'required' => true, - 'static' => true, - 'location' => 'query', - 'sentAs' => 'notification', - 'default' => '_guzzle_blank_', + 'QueueConfiguration' => array( + 'type' => 'object', + 'location' => 'xml', + 'properties' => array( + 'Id' => array( + 'type' => 'string', + ), + 'Event' => array( + 'type' => 'string', + ), + 'Events' => array( + 'type' => 'array', + 'data' => array( + 'xmlFlattened' => true, + ), + 'items' => array( + 'name' => 'Event', + 'type' => 'string', + ), + ), + 'Queue' => array( + 'type' => 'string', + ), + ), + ), + 'CloudFunctionConfiguration' => array( + 'type' => 'object', + 'location' => 'xml', + 'properties' => array( + 'Id' => array( + 'type' => 'string', + ), + 'Event' => array( + 'type' => 'string', + ), + 'Events' => array( + 'type' => 'array', + 'data' => array( + 'xmlFlattened' => true, + ), + 'items' => array( + 'name' => 'Event', + 'type' => 'string', + ), + ), + 'CloudFunction' => array( + 'type' => 'string', + ), + 'InvocationRole' => array( + 'type' => 'string', + ), + ), ), ), ), - 'PutBucketPolicy' => array( + 'PutBucketNotificationConfiguration' => array( 'httpMethod' => 'PUT', - 'uri' => '/{Bucket}', + 'uri' => '/{Bucket}?notification', 'class' => 'Aws\\S3\\Command\\S3Command', - 'responseClass' => 'PutBucketPolicyOutput', + 'responseClass' => 'PutBucketNotificationConfigurationOutput', 'responseType' => 'model', - 'documentationUrl' => 'http://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTpolicy.html', + 'data' => array( + 'xmlRoot' => array( + 'name' => 'NotificationConfiguration', + 'namespaces' => array( + 'http://s3.amazonaws.com/doc/2006-03-01/', + ), + ), + ), 'parameters' => array( 'Bucket' => array( 'required' => true, 'type' => 'string', 'location' => 'uri', ), - 'ContentMD5' => array( - 'default' => true, + 'TopicConfigurations' => array( + 'type' => 'array', + 'location' => 'xml', + 'data' => array( + 'xmlFlattened' => true, + ), + 'items' => array( + 'name' => 'TopicConfiguration', + 'type' => 'object', + 'sentAs' => 'TopicConfiguration', + 'properties' => array( + 'Id' => array( + 'type' => 'string', + ), + 'TopicArn' => array( + 'required' => true, + 'type' => 'string', + 'sentAs' => 'Topic', + ), + 'Events' => array( + 'required' => true, + 'type' => 'array', + 'data' => array( + 'xmlFlattened' => true, + ), + 'items' => array( + 'name' => 'Event', + 'type' => 'string', + 'sentAs' => 'Event', + ), + ), + ), + ), ), - 'Policy' => array( - 'required' => true, - 'type' => array( - 'string', - 'object', + 'QueueConfigurations' => array( + 'type' => 'array', + 'location' => 'xml', + 'data' => array( + 'xmlFlattened' => true, + ), + 'items' => array( + 'name' => 'QueueConfiguration', + 'type' => 'object', + 'sentAs' => 'QueueConfiguration', + 'properties' => array( + 'Id' => array( + 'type' => 'string', + ), + 'QueueArn' => array( + 'required' => true, + 'type' => 'string', + 'sentAs' => 'Queue', + ), + 'Events' => array( + 'required' => true, + 'type' => 'array', + 'data' => array( + 'xmlFlattened' => true, + ), + 'items' => array( + 'name' => 'Event', + 'type' => 'string', + 'sentAs' => 'Event', + ), + ), + ), ), - 'location' => 'body', ), - 'SubResource' => array( - 'required' => true, - 'static' => true, - 'location' => 'query', - 'sentAs' => 'policy', - 'default' => '_guzzle_blank_', + 'LambdaFunctionConfigurations' => array( + 'type' => 'array', + 'location' => 'xml', + 'data' => array( + 'xmlFlattened' => true, + ), + 'items' => array( + 'name' => 'LambdaFunctionConfiguration', + 'type' => 'object', + 'sentAs' => 'CloudFunctionConfiguration', + 'properties' => array( + 'Id' => array( + 'type' => 'string', + ), + 'LambdaFunctionArn' => array( + 'required' => true, + 'type' => 'string', + 'sentAs' => 'CloudFunction', + ), + 'Events' => array( + 'required' => true, + 'type' => 'array', + 'data' => array( + 'xmlFlattened' => true, + ), + 'items' => array( + 'name' => 'Event', + 'type' => 'string', + 'sentAs' => 'Event', + ), + ), + ), + ), ), ), ), - 'PutBucketRequestPayment' => array( + 'PutBucketPolicy' => array( 'httpMethod' => 'PUT', - 'uri' => '/{Bucket}', + 'uri' => '/{Bucket}?policy', 'class' => 'Aws\\S3\\Command\\S3Command', - 'responseClass' => 'PutBucketRequestPaymentOutput', + 'responseClass' => 'PutBucketPolicyOutput', 'responseType' => 'model', - 'documentationUrl' => 'http://docs.aws.amazon.com/AmazonS3/latest/API/RESTrequestPaymentPUT.html', + 'documentationUrl' => 'http://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTpolicy.html', 'data' => array( 'xmlRoot' => array( - 'name' => 'RequestPaymentConfiguration', + 'name' => 'PutBucketPolicyRequest', 'namespaces' => array( 'http://s3.amazonaws.com/doc/2006-03-01/', ), @@ -2077,37 +2188,25 @@ return array ( 'type' => 'string', 'location' => 'uri', ), - 'ContentMD5' => array( - 'default' => true, - ), - 'Payer' => array( + 'Policy' => array( 'required' => true, - 'type' => 'string', - 'location' => 'xml', - 'enum' => array( - 'Requester', - 'BucketOwner', + 'type' => array( + 'string', + 'object', ), - ), - 'SubResource' => array( - 'required' => true, - 'static' => true, - 'location' => 'query', - 'sentAs' => 'requestPayment', - 'default' => '_guzzle_blank_', + 'location' => 'body', ), ), ), - 'PutBucketTagging' => array( + 'PutBucketReplication' => array( 'httpMethod' => 'PUT', - 'uri' => '/{Bucket}', + 'uri' => '/{Bucket}?replication', 'class' => 'Aws\\S3\\Command\\S3Command', - 'responseClass' => 'PutBucketTaggingOutput', + 'responseClass' => 'PutBucketReplicationOutput', 'responseType' => 'model', - 'documentationUrl' => 'http://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTtagging.html', 'data' => array( 'xmlRoot' => array( - 'name' => 'Tagging', + 'name' => 'ReplicationConfiguration', 'namespaces' => array( 'http://s3.amazonaws.com/doc/2006-03-01/', ), @@ -2119,41 +2218,123 @@ return array ( 'type' => 'string', 'location' => 'uri', ), - 'ContentMD5' => array( - 'default' => true, + 'Role' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'xml', ), - 'TagSet' => array( + 'Rules' => array( 'required' => true, 'type' => 'array', 'location' => 'xml', + 'data' => array( + 'xmlFlattened' => true, + ), 'items' => array( - 'name' => 'Tag', - 'required' => true, + 'name' => 'ReplicationRule', 'type' => 'object', + 'sentAs' => 'Rule', 'properties' => array( - 'Key' => array( - 'required' => true, + 'ID' => array( 'type' => 'string', ), - 'Value' => array( + 'Prefix' => array( 'required' => true, 'type' => 'string', ), - ), + 'Status' => array( + 'required' => true, + 'type' => 'string', + ), + 'Destination' => array( + 'required' => true, + 'type' => 'object', + 'properties' => array( + 'Bucket' => array( + 'required' => true, + 'type' => 'string', + ), + ), + ), + ), + ), + ), + ), + ), + 'PutBucketRequestPayment' => array( + 'httpMethod' => 'PUT', + 'uri' => '/{Bucket}?requestPayment', + 'class' => 'Aws\\S3\\Command\\S3Command', + 'responseClass' => 'PutBucketRequestPaymentOutput', + 'responseType' => 'model', + 'documentationUrl' => 'http://docs.aws.amazon.com/AmazonS3/latest/API/RESTrequestPaymentPUT.html', + 'data' => array( + 'xmlRoot' => array( + 'name' => 'RequestPaymentConfiguration', + 'namespaces' => array( + 'http://s3.amazonaws.com/doc/2006-03-01/', ), ), - 'SubResource' => array( + ), + 'parameters' => array( + 'Bucket' => array( 'required' => true, - 'static' => true, - 'location' => 'query', - 'sentAs' => 'tagging', - 'default' => '_guzzle_blank_', + 'type' => 'string', + 'location' => 'uri', + ), + 'Payer' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'xml', + ), + ), + ), + 'PutBucketTagging' => array( + 'httpMethod' => 'PUT', + 'uri' => '/{Bucket}?tagging', + 'class' => 'Aws\\S3\\Command\\S3Command', + 'responseClass' => 'PutBucketTaggingOutput', + 'responseType' => 'model', + 'documentationUrl' => 'http://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTtagging.html', + 'data' => array( + 'xmlRoot' => array( + 'name' => 'Tagging', + 'namespaces' => array( + 'http://s3.amazonaws.com/doc/2006-03-01/', + ), + ), + 'contentMd5' => true, + ), + 'parameters' => array( + 'Bucket' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'uri', + ), + 'TagSet' => array( + 'required' => true, + 'type' => 'array', + 'location' => 'xml', + 'items' => array( + 'name' => 'Tag', + 'type' => 'object', + 'properties' => array( + 'Key' => array( + 'required' => true, + 'type' => 'string', + ), + 'Value' => array( + 'required' => true, + 'type' => 'string', + ), + ), + ), ), ), ), 'PutBucketVersioning' => array( 'httpMethod' => 'PUT', - 'uri' => '/{Bucket}', + 'uri' => '/{Bucket}?versioning', 'class' => 'Aws\\S3\\Command\\S3Command', 'responseClass' => 'PutBucketVersioningOutput', 'responseType' => 'model', @@ -2172,9 +2353,6 @@ return array ( 'type' => 'string', 'location' => 'uri', ), - 'ContentMD5' => array( - 'default' => true, - ), 'MFA' => array( 'type' => 'string', 'location' => 'header', @@ -2183,31 +2361,17 @@ return array ( 'MFADelete' => array( 'type' => 'string', 'location' => 'xml', - 'enum' => array( - 'Enabled', - 'Disabled', - ), + 'sentAs' => 'MfaDelete', ), 'Status' => array( 'type' => 'string', 'location' => 'xml', - 'enum' => array( - 'Enabled', - 'Suspended', - ), - ), - 'SubResource' => array( - 'required' => true, - 'static' => true, - 'location' => 'query', - 'sentAs' => 'versioning', - 'default' => '_guzzle_blank_', ), ), ), 'PutBucketWebsite' => array( 'httpMethod' => 'PUT', - 'uri' => '/{Bucket}', + 'uri' => '/{Bucket}?website', 'class' => 'Aws\\S3\\Command\\S3Command', 'responseClass' => 'PutBucketWebsiteOutput', 'responseType' => 'model', @@ -2227,9 +2391,6 @@ return array ( 'type' => 'string', 'location' => 'uri', ), - 'ContentMD5' => array( - 'default' => true, - ), 'ErrorDocument' => array( 'type' => 'object', 'location' => 'xml', @@ -2260,10 +2421,6 @@ return array ( ), 'Protocol' => array( 'type' => 'string', - 'enum' => array( - 'http', - 'https', - ), ), ), ), @@ -2297,10 +2454,6 @@ return array ( ), 'Protocol' => array( 'type' => 'string', - 'enum' => array( - 'http', - 'https', - ), ), 'ReplaceKeyPrefixWith' => array( 'type' => 'string', @@ -2313,13 +2466,6 @@ return array ( ), ), ), - 'SubResource' => array( - 'required' => true, - 'static' => true, - 'location' => 'query', - 'sentAs' => 'website', - 'default' => '_guzzle_blank_', - ), ), ), 'PutObject' => array( @@ -2329,19 +2475,19 @@ return array ( 'responseClass' => 'PutObjectOutput', 'responseType' => 'model', 'documentationUrl' => 'http://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPUT.html', + 'data' => array( + 'xmlRoot' => array( + 'name' => 'PutObjectRequest', + 'namespaces' => array( + 'http://s3.amazonaws.com/doc/2006-03-01/', + ), + ), + ), 'parameters' => array( 'ACL' => array( 'type' => 'string', 'location' => 'header', 'sentAs' => 'x-amz-acl', - 'enum' => array( - 'private', - 'public-read', - 'public-read-write', - 'authenticated-read', - 'bucket-owner-read', - 'bucket-owner-full-control', - ), ), 'Body' => array( 'type' => array( @@ -2381,7 +2527,12 @@ return array ( 'sentAs' => 'Content-Length', ), 'ContentMD5' => array( - 'default' => true, + 'type' => array( + 'string', + 'boolean', + ), + 'location' => 'header', + 'sentAs' => 'Content-MD5', ), 'ContentType' => array( 'type' => 'string', @@ -2437,26 +2588,41 @@ return array ( 'type' => 'string', 'location' => 'header', 'sentAs' => 'x-amz-server-side-encryption', - 'enum' => array( - 'AES256', - ), ), 'StorageClass' => array( 'type' => 'string', 'location' => 'header', 'sentAs' => 'x-amz-storage-class', - 'enum' => array( - 'STANDARD', - 'REDUCED_REDUNDANCY', - ), ), 'WebsiteRedirectLocation' => array( 'type' => 'string', 'location' => 'header', 'sentAs' => 'x-amz-website-redirect-location', ), - 'ValidateMD5' => array( - 'default' => true, + 'SSECustomerAlgorithm' => array( + 'type' => 'string', + 'location' => 'header', + 'sentAs' => 'x-amz-server-side-encryption-customer-algorithm', + ), + 'SSECustomerKey' => array( + 'type' => 'string', + 'location' => 'header', + 'sentAs' => 'x-amz-server-side-encryption-customer-key', + ), + 'SSECustomerKeyMD5' => array( + 'type' => 'string', + 'location' => 'header', + 'sentAs' => 'x-amz-server-side-encryption-customer-key-MD5', + ), + 'SSEKMSKeyId' => array( + 'type' => 'string', + 'location' => 'header', + 'sentAs' => 'x-amz-server-side-encryption-aws-kms-key-id', + ), + 'RequestPayer' => array( + 'type' => 'string', + 'location' => 'header', + 'sentAs' => 'x-amz-request-payer', ), 'ACP' => array( 'type' => 'object', @@ -2466,7 +2632,7 @@ return array ( ), 'PutObjectAcl' => array( 'httpMethod' => 'PUT', - 'uri' => '/{Bucket}{/Key*}', + 'uri' => '/{Bucket}{/Key*}?acl', 'class' => 'Aws\\S3\\Command\\S3Command', 'responseClass' => 'PutObjectAclOutput', 'responseType' => 'model', @@ -2484,14 +2650,6 @@ return array ( 'type' => 'string', 'location' => 'header', 'sentAs' => 'x-amz-acl', - 'enum' => array( - 'private', - 'public-read', - 'public-read-write', - 'authenticated-read', - 'bucket-owner-read', - 'bucket-owner-full-control', - ), ), 'Grants' => array( 'type' => 'array', @@ -2521,11 +2679,6 @@ return array ( 'xmlAttribute' => true, 'xmlNamespace' => 'http://www.w3.org/2001/XMLSchema-instance', ), - 'enum' => array( - 'CanonicalUser', - 'AmazonCustomerByEmail', - 'Group', - ), ), 'URI' => array( 'type' => 'string', @@ -2534,13 +2687,6 @@ return array ( ), 'Permission' => array( 'type' => 'string', - 'enum' => array( - 'FULL_CONTROL', - 'WRITE', - 'WRITE_ACP', - 'READ', - 'READ_ACP', - ), ), ), ), @@ -2562,9 +2708,6 @@ return array ( 'type' => 'string', 'location' => 'uri', ), - 'ContentMD5' => array( - 'default' => true, - ), 'GrantFullControl' => array( 'type' => 'string', 'location' => 'header', @@ -2598,12 +2741,10 @@ return array ( 'Aws\\S3\\S3Client::explodeKey', ), ), - 'SubResource' => array( - 'required' => true, - 'static' => true, - 'location' => 'query', - 'sentAs' => 'acl', - 'default' => '_guzzle_blank_', + 'RequestPayer' => array( + 'type' => 'string', + 'location' => 'header', + 'sentAs' => 'x-amz-request-payer', ), 'ACP' => array( 'type' => 'object', @@ -2619,7 +2760,7 @@ return array ( ), 'RestoreObject' => array( 'httpMethod' => 'POST', - 'uri' => '/{Bucket}{/Key*}', + 'uri' => '/{Bucket}{/Key*}?restore', 'class' => 'Aws\\S3\\Command\\S3Command', 'responseClass' => 'RestoreObjectOutput', 'responseType' => 'model', @@ -2646,17 +2787,20 @@ return array ( 'Aws\\S3\\S3Client::explodeKey', ), ), + 'VersionId' => array( + 'type' => 'string', + 'location' => 'query', + 'sentAs' => 'versionId', + ), 'Days' => array( 'required' => true, 'type' => 'numeric', 'location' => 'xml', ), - 'SubResource' => array( - 'required' => true, - 'static' => true, - 'location' => 'query', - 'sentAs' => 'restore', - 'default' => '_guzzle_blank_', + 'RequestPayer' => array( + 'type' => 'string', + 'location' => 'header', + 'sentAs' => 'x-amz-request-payer', ), ), 'errorResponses' => array( @@ -2673,6 +2817,14 @@ return array ( 'responseClass' => 'UploadPartOutput', 'responseType' => 'model', 'documentationUrl' => 'http://docs.aws.amazon.com/AmazonS3/latest/API/mpUploadUploadPart.html', + 'data' => array( + 'xmlRoot' => array( + 'name' => 'UploadPartRequest', + 'namespaces' => array( + 'http://s3.amazonaws.com/doc/2006-03-01/', + ), + ), + ), 'parameters' => array( 'Body' => array( 'type' => array( @@ -2691,6 +2843,14 @@ return array ( 'location' => 'header', 'sentAs' => 'Content-Length', ), + 'ContentMD5' => array( + 'type' => array( + 'string', + 'boolean', + ), + 'location' => 'header', + 'sentAs' => 'Content-MD5', + ), 'Key' => array( 'required' => true, 'type' => 'string', @@ -2701,7 +2861,7 @@ return array ( ), 'PartNumber' => array( 'required' => true, - 'type' => 'string', + 'type' => 'numeric', 'location' => 'query', 'sentAs' => 'partNumber', ), @@ -2711,11 +2871,25 @@ return array ( 'location' => 'query', 'sentAs' => 'uploadId', ), - 'ContentMD5' => array( - 'default' => true, + 'SSECustomerAlgorithm' => array( + 'type' => 'string', + 'location' => 'header', + 'sentAs' => 'x-amz-server-side-encryption-customer-algorithm', + ), + 'SSECustomerKey' => array( + 'type' => 'string', + 'location' => 'header', + 'sentAs' => 'x-amz-server-side-encryption-customer-key', ), - 'ValidateMD5' => array( - 'default' => true, + 'SSECustomerKeyMD5' => array( + 'type' => 'string', + 'location' => 'header', + 'sentAs' => 'x-amz-server-side-encryption-customer-key-MD5', + ), + 'RequestPayer' => array( + 'type' => 'string', + 'location' => 'header', + 'sentAs' => 'x-amz-request-payer', ), ), ), @@ -2726,6 +2900,14 @@ return array ( 'responseClass' => 'UploadPartCopyOutput', 'responseType' => 'model', 'documentationUrl' => 'http://docs.aws.amazon.com/AmazonS3/latest/API/mpUploadUploadPartCopy.html', + 'data' => array( + 'xmlRoot' => array( + 'name' => 'UploadPartCopyRequest', + 'namespaces' => array( + 'http://s3.amazonaws.com/doc/2006-03-01/', + ), + ), + ), 'parameters' => array( 'Bucket' => array( 'required' => true, @@ -2739,12 +2921,7 @@ return array ( 'sentAs' => 'x-amz-copy-source', ), 'CopySourceIfMatch' => array( - 'type' => array( - 'object', - 'string', - 'integer', - ), - 'format' => 'date-time-http', + 'type' => 'string', 'location' => 'header', 'sentAs' => 'x-amz-copy-source-if-match', ), @@ -2759,12 +2936,7 @@ return array ( 'sentAs' => 'x-amz-copy-source-if-modified-since', ), 'CopySourceIfNoneMatch' => array( - 'type' => array( - 'object', - 'string', - 'integer', - ), - 'format' => 'date-time-http', + 'type' => 'string', 'location' => 'header', 'sentAs' => 'x-amz-copy-source-if-none-match', ), @@ -2793,7 +2965,7 @@ return array ( ), 'PartNumber' => array( 'required' => true, - 'type' => 'string', + 'type' => 'numeric', 'location' => 'query', 'sentAs' => 'partNumber', ), @@ -2803,6 +2975,41 @@ return array ( 'location' => 'query', 'sentAs' => 'uploadId', ), + 'SSECustomerAlgorithm' => array( + 'type' => 'string', + 'location' => 'header', + 'sentAs' => 'x-amz-server-side-encryption-customer-algorithm', + ), + 'SSECustomerKey' => array( + 'type' => 'string', + 'location' => 'header', + 'sentAs' => 'x-amz-server-side-encryption-customer-key', + ), + 'SSECustomerKeyMD5' => array( + 'type' => 'string', + 'location' => 'header', + 'sentAs' => 'x-amz-server-side-encryption-customer-key-MD5', + ), + 'CopySourceSSECustomerAlgorithm' => array( + 'type' => 'string', + 'location' => 'header', + 'sentAs' => 'x-amz-copy-source-server-side-encryption-customer-algorithm', + ), + 'CopySourceSSECustomerKey' => array( + 'type' => 'string', + 'location' => 'header', + 'sentAs' => 'x-amz-copy-source-server-side-encryption-customer-key', + ), + 'CopySourceSSECustomerKeyMD5' => array( + 'type' => 'string', + 'location' => 'header', + 'sentAs' => 'x-amz-copy-source-server-side-encryption-customer-key-MD5', + ), + 'RequestPayer' => array( + 'type' => 'string', + 'location' => 'header', + 'sentAs' => 'x-amz-request-payer', + ), 'command.expects' => array( 'static' => true, 'default' => 'application/xml', @@ -2815,6 +3022,11 @@ return array ( 'type' => 'object', 'additionalProperties' => true, 'properties' => array( + 'RequestCharged' => array( + 'type' => 'string', + 'location' => 'header', + 'sentAs' => 'x-amz-request-charged', + ), 'RequestId' => array( 'location' => 'header', 'sentAs' => 'x-amz-request-id', @@ -2856,6 +3068,16 @@ return array ( 'location' => 'header', 'sentAs' => 'x-amz-version-id', ), + 'SSEKMSKeyId' => array( + 'type' => 'string', + 'location' => 'header', + 'sentAs' => 'x-amz-server-side-encryption-aws-kms-key-id', + ), + 'RequestCharged' => array( + 'type' => 'string', + 'location' => 'header', + 'sentAs' => 'x-amz-request-charged', + ), 'RequestId' => array( 'location' => 'header', 'sentAs' => 'x-amz-request-id', @@ -2889,6 +3111,26 @@ return array ( 'location' => 'header', 'sentAs' => 'x-amz-server-side-encryption', ), + 'SSECustomerAlgorithm' => array( + 'type' => 'string', + 'location' => 'header', + 'sentAs' => 'x-amz-server-side-encryption-customer-algorithm', + ), + 'SSECustomerKeyMD5' => array( + 'type' => 'string', + 'location' => 'header', + 'sentAs' => 'x-amz-server-side-encryption-customer-key-MD5', + ), + 'SSEKMSKeyId' => array( + 'type' => 'string', + 'location' => 'header', + 'sentAs' => 'x-amz-server-side-encryption-aws-kms-key-id', + ), + 'RequestCharged' => array( + 'type' => 'string', + 'location' => 'header', + 'sentAs' => 'x-amz-request-charged', + ), 'RequestId' => array( 'location' => 'header', 'sentAs' => 'x-amz-request-id', @@ -2931,6 +3173,26 @@ return array ( 'location' => 'header', 'sentAs' => 'x-amz-server-side-encryption', ), + 'SSECustomerAlgorithm' => array( + 'type' => 'string', + 'location' => 'header', + 'sentAs' => 'x-amz-server-side-encryption-customer-algorithm', + ), + 'SSECustomerKeyMD5' => array( + 'type' => 'string', + 'location' => 'header', + 'sentAs' => 'x-amz-server-side-encryption-customer-key-MD5', + ), + 'SSEKMSKeyId' => array( + 'type' => 'string', + 'location' => 'header', + 'sentAs' => 'x-amz-server-side-encryption-aws-kms-key-id', + ), + 'RequestCharged' => array( + 'type' => 'string', + 'location' => 'header', + 'sentAs' => 'x-amz-request-charged', + ), 'RequestId' => array( 'location' => 'header', 'sentAs' => 'x-amz-request-id', @@ -2977,6 +3239,16 @@ return array ( ), ), ), + 'DeleteBucketReplicationOutput' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'RequestId' => array( + 'location' => 'header', + 'sentAs' => 'x-amz-request-id', + ), + ), + ), 'DeleteBucketTaggingOutput' => array( 'type' => 'object', 'additionalProperties' => true, @@ -3011,6 +3283,11 @@ return array ( 'location' => 'header', 'sentAs' => 'x-amz-version-id', ), + 'RequestCharged' => array( + 'type' => 'string', + 'location' => 'header', + 'sentAs' => 'x-amz-request-charged', + ), 'RequestId' => array( 'location' => 'header', 'sentAs' => 'x-amz-request-id', @@ -3028,6 +3305,7 @@ return array ( 'xmlFlattened' => true, ), 'items' => array( + 'name' => 'DeletedObject', 'type' => 'object', 'properties' => array( 'Key' => array( @@ -3045,6 +3323,11 @@ return array ( ), ), ), + 'RequestCharged' => array( + 'type' => 'string', + 'location' => 'header', + 'sentAs' => 'x-amz-request-charged', + ), 'Errors' => array( 'type' => 'array', 'location' => 'xml', @@ -3053,6 +3336,7 @@ return array ( 'xmlFlattened' => true, ), 'items' => array( + 'name' => 'Error', 'type' => 'object', 'sentAs' => 'Error', 'properties' => array( @@ -3085,10 +3369,10 @@ return array ( 'type' => 'object', 'location' => 'xml', 'properties' => array( - 'ID' => array( + 'DisplayName' => array( 'type' => 'string', ), - 'DisplayName' => array( + 'ID' => array( 'type' => 'string', ), ), @@ -3105,22 +3389,22 @@ return array ( 'Grantee' => array( 'type' => 'object', 'properties' => array( - 'Type' => array( + 'DisplayName' => array( 'type' => 'string', - 'sentAs' => 'xsi:type', - 'data' => array( - 'xmlAttribute' => true, - 'xmlNamespace' => 'http://www.w3.org/2001/XMLSchema-instance', - ), ), - 'ID' => array( + 'EmailAddress' => array( 'type' => 'string', ), - 'DisplayName' => array( + 'ID' => array( 'type' => 'string', ), - 'EmailAddress' => array( + 'Type' => array( 'type' => 'string', + 'sentAs' => 'xsi:type', + 'data' => array( + 'xmlAttribute' => true, + 'xmlNamespace' => 'http://www.w3.org/2001/XMLSchema-instance', + ), ), 'URI' => array( 'type' => 'string', @@ -3151,6 +3435,7 @@ return array ( 'xmlFlattened' => true, ), 'items' => array( + 'name' => 'CORSRule', 'type' => 'object', 'sentAs' => 'CORSRule', 'properties' => array( @@ -3161,35 +3446,35 @@ return array ( 'xmlFlattened' => true, ), 'items' => array( + 'name' => 'AllowedHeader', 'type' => 'string', 'sentAs' => 'AllowedHeader', ), ), - 'AllowedOrigins' => array( + 'AllowedMethods' => array( 'type' => 'array', - 'sentAs' => 'AllowedOrigin', + 'sentAs' => 'AllowedMethod', 'data' => array( 'xmlFlattened' => true, ), 'items' => array( + 'name' => 'AllowedMethod', 'type' => 'string', - 'sentAs' => 'AllowedOrigin', + 'sentAs' => 'AllowedMethod', ), ), - 'AllowedMethods' => array( + 'AllowedOrigins' => array( 'type' => 'array', - 'sentAs' => 'AllowedMethod', + 'sentAs' => 'AllowedOrigin', 'data' => array( 'xmlFlattened' => true, ), 'items' => array( + 'name' => 'AllowedOrigin', 'type' => 'string', - 'sentAs' => 'AllowedMethod', + 'sentAs' => 'AllowedOrigin', ), ), - 'MaxAgeSeconds' => array( - 'type' => 'numeric', - ), 'ExposeHeaders' => array( 'type' => 'array', 'sentAs' => 'ExposeHeader', @@ -3197,10 +3482,14 @@ return array ( 'xmlFlattened' => true, ), 'items' => array( + 'name' => 'ExposeHeader', 'type' => 'string', 'sentAs' => 'ExposeHeader', ), ), + 'MaxAgeSeconds' => array( + 'type' => 'numeric', + ), ), ), ), @@ -3222,9 +3511,21 @@ return array ( 'xmlFlattened' => true, ), 'items' => array( + 'name' => 'Rule', 'type' => 'object', 'sentAs' => 'Rule', 'properties' => array( + 'Expiration' => array( + 'type' => 'object', + 'properties' => array( + 'Date' => array( + 'type' => 'string', + ), + 'Days' => array( + 'type' => 'numeric', + ), + ), + ), 'ID' => array( 'type' => 'string', ), @@ -3237,28 +3538,36 @@ return array ( 'Transition' => array( 'type' => 'object', 'properties' => array( - 'Days' => array( - 'type' => 'numeric', - ), 'Date' => array( 'type' => 'string', ), + 'Days' => array( + 'type' => 'numeric', + ), 'StorageClass' => array( 'type' => 'string', ), ), ), - 'Expiration' => array( + 'NoncurrentVersionTransition' => array( 'type' => 'object', 'properties' => array( - 'Days' => array( + 'NoncurrentDays' => array( 'type' => 'numeric', ), - 'Date' => array( + 'StorageClass' => array( 'type' => 'string', ), ), ), + 'NoncurrentVersionExpiration' => array( + 'type' => 'object', + 'properties' => array( + 'NoncurrentDays' => array( + 'type' => 'numeric', + ), + ), + ), ), ), ), @@ -3294,9 +3603,6 @@ return array ( 'TargetBucket' => array( 'type' => 'string', ), - 'TargetPrefix' => array( - 'type' => 'string', - ), 'TargetGrants' => array( 'type' => 'array', 'items' => array( @@ -3307,22 +3613,22 @@ return array ( 'Grantee' => array( 'type' => 'object', 'properties' => array( - 'Type' => array( + 'DisplayName' => array( 'type' => 'string', - 'sentAs' => 'xsi:type', - 'data' => array( - 'xmlAttribute' => true, - 'xmlNamespace' => 'http://www.w3.org/2001/XMLSchema-instance', - ), ), - 'ID' => array( + 'EmailAddress' => array( 'type' => 'string', ), - 'DisplayName' => array( + 'ID' => array( 'type' => 'string', ), - 'EmailAddress' => array( + 'Type' => array( 'type' => 'string', + 'sentAs' => 'xsi:type', + 'data' => array( + 'xmlAttribute' => true, + 'xmlNamespace' => 'http://www.w3.org/2001/XMLSchema-instance', + ), ), 'URI' => array( 'type' => 'string', @@ -3335,6 +3641,215 @@ return array ( ), ), ), + 'TargetPrefix' => array( + 'type' => 'string', + ), + ), + ), + 'RequestId' => array( + 'location' => 'header', + 'sentAs' => 'x-amz-request-id', + ), + ), + ), + 'NotificationConfigurationDeprecated' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'TopicConfiguration' => array( + 'type' => 'object', + 'location' => 'xml', + 'properties' => array( + 'Id' => array( + 'type' => 'string', + ), + 'Events' => array( + 'type' => 'array', + 'sentAs' => 'Event', + 'data' => array( + 'xmlFlattened' => true, + ), + 'items' => array( + 'name' => 'Event', + 'type' => 'string', + 'sentAs' => 'Event', + ), + ), + 'Event' => array( + 'type' => 'string', + ), + 'Topic' => array( + 'type' => 'string', + ), + ), + ), + 'QueueConfiguration' => array( + 'type' => 'object', + 'location' => 'xml', + 'properties' => array( + 'Id' => array( + 'type' => 'string', + ), + 'Event' => array( + 'type' => 'string', + ), + 'Events' => array( + 'type' => 'array', + 'sentAs' => 'Event', + 'data' => array( + 'xmlFlattened' => true, + ), + 'items' => array( + 'name' => 'Event', + 'type' => 'string', + 'sentAs' => 'Event', + ), + ), + 'Queue' => array( + 'type' => 'string', + ), + ), + ), + 'CloudFunctionConfiguration' => array( + 'type' => 'object', + 'location' => 'xml', + 'properties' => array( + 'Id' => array( + 'type' => 'string', + ), + 'Event' => array( + 'type' => 'string', + ), + 'Events' => array( + 'type' => 'array', + 'sentAs' => 'Event', + 'data' => array( + 'xmlFlattened' => true, + ), + 'items' => array( + 'name' => 'Event', + 'type' => 'string', + 'sentAs' => 'Event', + ), + ), + 'CloudFunction' => array( + 'type' => 'string', + ), + 'InvocationRole' => array( + 'type' => 'string', + ), + ), + ), + 'RequestId' => array( + 'location' => 'header', + 'sentAs' => 'x-amz-request-id', + ), + ), + ), + 'NotificationConfiguration' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'TopicConfigurations' => array( + 'type' => 'array', + 'location' => 'xml', + 'sentAs' => 'TopicConfiguration', + 'data' => array( + 'xmlFlattened' => true, + ), + 'items' => array( + 'name' => 'TopicConfiguration', + 'type' => 'object', + 'sentAs' => 'TopicConfiguration', + 'properties' => array( + 'Id' => array( + 'type' => 'string', + ), + 'TopicArn' => array( + 'type' => 'string', + 'sentAs' => 'Topic', + ), + 'Events' => array( + 'type' => 'array', + 'sentAs' => 'Event', + 'data' => array( + 'xmlFlattened' => true, + ), + 'items' => array( + 'name' => 'Event', + 'type' => 'string', + 'sentAs' => 'Event', + ), + ), + ), + ), + ), + 'QueueConfigurations' => array( + 'type' => 'array', + 'location' => 'xml', + 'sentAs' => 'QueueConfiguration', + 'data' => array( + 'xmlFlattened' => true, + ), + 'items' => array( + 'name' => 'QueueConfiguration', + 'type' => 'object', + 'sentAs' => 'QueueConfiguration', + 'properties' => array( + 'Id' => array( + 'type' => 'string', + ), + 'QueueArn' => array( + 'type' => 'string', + 'sentAs' => 'Queue', + ), + 'Events' => array( + 'type' => 'array', + 'sentAs' => 'Event', + 'data' => array( + 'xmlFlattened' => true, + ), + 'items' => array( + 'name' => 'Event', + 'type' => 'string', + 'sentAs' => 'Event', + ), + ), + ), + ), + ), + 'LambdaFunctionConfigurations' => array( + 'type' => 'array', + 'location' => 'xml', + 'sentAs' => 'CloudFunctionConfiguration', + 'data' => array( + 'xmlFlattened' => true, + ), + 'items' => array( + 'name' => 'LambdaFunctionConfiguration', + 'type' => 'object', + 'sentAs' => 'CloudFunctionConfiguration', + 'properties' => array( + 'Id' => array( + 'type' => 'string', + ), + 'LambdaFunctionArn' => array( + 'type' => 'string', + 'sentAs' => 'CloudFunction', + ), + 'Events' => array( + 'type' => 'array', + 'sentAs' => 'Event', + 'data' => array( + 'xmlFlattened' => true, + ), + 'items' => array( + 'name' => 'Event', + 'type' => 'string', + 'sentAs' => 'Event', + ), + ), + ), ), ), 'RequestId' => array( @@ -3343,21 +3858,14 @@ return array ( ), ), ), - 'GetBucketNotificationOutput' => array( + 'GetBucketPolicyOutput' => array( 'type' => 'object', 'additionalProperties' => true, 'properties' => array( - 'TopicConfiguration' => array( - 'type' => 'object', - 'location' => 'xml', - 'properties' => array( - 'Topic' => array( - 'type' => 'string', - ), - 'Event' => array( - 'type' => 'string', - ), - ), + 'Policy' => array( + 'type' => 'string', + 'instanceOf' => 'Guzzle\\Http\\EntityBody', + 'location' => 'body', ), 'RequestId' => array( 'location' => 'header', @@ -3365,14 +3873,45 @@ return array ( ), ), ), - 'GetBucketPolicyOutput' => array( + 'GetBucketReplicationOutput' => array( 'type' => 'object', 'additionalProperties' => true, 'properties' => array( - 'Policy' => array( + 'Role' => array( 'type' => 'string', - 'instanceOf' => 'Guzzle\\Http\\EntityBody', - 'location' => 'body', + 'location' => 'xml', + ), + 'Rules' => array( + 'type' => 'array', + 'location' => 'xml', + 'sentAs' => 'Rule', + 'data' => array( + 'xmlFlattened' => true, + ), + 'items' => array( + 'name' => 'ReplicationRule', + 'type' => 'object', + 'sentAs' => 'Rule', + 'properties' => array( + 'ID' => array( + 'type' => 'string', + ), + 'Prefix' => array( + 'type' => 'string', + ), + 'Status' => array( + 'type' => 'string', + ), + 'Destination' => array( + 'type' => 'object', + 'properties' => array( + 'Bucket' => array( + 'type' => 'string', + ), + ), + ), + ), + ), ), 'RequestId' => array( 'location' => 'header', @@ -3432,6 +3971,7 @@ return array ( 'MFADelete' => array( 'type' => 'string', 'location' => 'xml', + 'sentAs' => 'MfaDelete', ), 'RequestId' => array( 'location' => 'header', @@ -3484,10 +4024,10 @@ return array ( 'Condition' => array( 'type' => 'object', 'properties' => array( - 'KeyPrefixEquals' => array( + 'HttpErrorCodeReturnedEquals' => array( 'type' => 'string', ), - 'HttpErrorCodeReturnedEquals' => array( + 'KeyPrefixEquals' => array( 'type' => 'string', ), ), @@ -3498,16 +4038,16 @@ return array ( 'HostName' => array( 'type' => 'string', ), - 'ReplaceKeyPrefixWith' => array( + 'HttpRedirectCode' => array( 'type' => 'string', ), - 'ReplaceKeyWith' => array( + 'Protocol' => array( 'type' => 'string', ), - 'HttpRedirectCode' => array( + 'ReplaceKeyPrefixWith' => array( 'type' => 'string', ), - 'Protocol' => array( + 'ReplaceKeyWith' => array( 'type' => 'string', ), ), @@ -3621,6 +4161,31 @@ return array ( 'type' => 'string', ), ), + 'SSECustomerAlgorithm' => array( + 'type' => 'string', + 'location' => 'header', + 'sentAs' => 'x-amz-server-side-encryption-customer-algorithm', + ), + 'SSECustomerKeyMD5' => array( + 'type' => 'string', + 'location' => 'header', + 'sentAs' => 'x-amz-server-side-encryption-customer-key-MD5', + ), + 'SSEKMSKeyId' => array( + 'type' => 'string', + 'location' => 'header', + 'sentAs' => 'x-amz-server-side-encryption-aws-kms-key-id', + ), + 'RequestCharged' => array( + 'type' => 'string', + 'location' => 'header', + 'sentAs' => 'x-amz-request-charged', + ), + 'ReplicationStatus' => array( + 'type' => 'string', + 'location' => 'header', + 'sentAs' => 'x-amz-replication-status', + ), 'RequestId' => array( 'location' => 'header', 'sentAs' => 'x-amz-request-id', @@ -3635,10 +4200,10 @@ return array ( 'type' => 'object', 'location' => 'xml', 'properties' => array( - 'ID' => array( + 'DisplayName' => array( 'type' => 'string', ), - 'DisplayName' => array( + 'ID' => array( 'type' => 'string', ), ), @@ -3655,22 +4220,22 @@ return array ( 'Grantee' => array( 'type' => 'object', 'properties' => array( - 'Type' => array( + 'DisplayName' => array( 'type' => 'string', - 'sentAs' => 'xsi:type', - 'data' => array( - 'xmlAttribute' => true, - 'xmlNamespace' => 'http://www.w3.org/2001/XMLSchema-instance', - ), ), - 'ID' => array( + 'EmailAddress' => array( 'type' => 'string', ), - 'DisplayName' => array( + 'ID' => array( 'type' => 'string', ), - 'EmailAddress' => array( + 'Type' => array( 'type' => 'string', + 'sentAs' => 'xsi:type', + 'data' => array( + 'xmlAttribute' => true, + 'xmlNamespace' => 'http://www.w3.org/2001/XMLSchema-instance', + ), ), 'URI' => array( 'type' => 'string', @@ -3683,6 +4248,11 @@ return array ( ), ), ), + 'RequestCharged' => array( + 'type' => 'string', + 'location' => 'header', + 'sentAs' => 'x-amz-request-charged', + ), 'RequestId' => array( 'location' => 'header', 'sentAs' => 'x-amz-request-id', @@ -3698,6 +4268,11 @@ return array ( 'instanceOf' => 'Guzzle\\Http\\EntityBody', 'location' => 'body', ), + 'RequestCharged' => array( + 'type' => 'string', + 'location' => 'header', + 'sentAs' => 'x-amz-request-charged', + ), 'RequestId' => array( 'location' => 'header', 'sentAs' => 'x-amz-request-id', @@ -3809,6 +4384,31 @@ return array ( 'type' => 'string', ), ), + 'SSECustomerAlgorithm' => array( + 'type' => 'string', + 'location' => 'header', + 'sentAs' => 'x-amz-server-side-encryption-customer-algorithm', + ), + 'SSECustomerKeyMD5' => array( + 'type' => 'string', + 'location' => 'header', + 'sentAs' => 'x-amz-server-side-encryption-customer-key-MD5', + ), + 'SSEKMSKeyId' => array( + 'type' => 'string', + 'location' => 'header', + 'sentAs' => 'x-amz-server-side-encryption-aws-kms-key-id', + ), + 'RequestCharged' => array( + 'type' => 'string', + 'location' => 'header', + 'sentAs' => 'x-amz-request-charged', + ), + 'ReplicationStatus' => array( + 'type' => 'string', + 'location' => 'header', + 'sentAs' => 'x-amz-replication-status', + ), 'RequestId' => array( 'location' => 'header', 'sentAs' => 'x-amz-request-id', @@ -3840,10 +4440,10 @@ return array ( 'type' => 'object', 'location' => 'xml', 'properties' => array( - 'ID' => array( + 'DisplayName' => array( 'type' => 'string', ), - 'DisplayName' => array( + 'ID' => array( 'type' => 'string', ), ), @@ -3878,6 +4478,10 @@ return array ( 'type' => 'string', 'location' => 'xml', ), + 'Delimiter' => array( + 'type' => 'string', + 'location' => 'xml', + ), 'NextUploadIdMarker' => array( 'type' => 'string', 'location' => 'xml', @@ -3898,6 +4502,7 @@ return array ( 'xmlFlattened' => true, ), 'items' => array( + 'name' => 'MultipartUpload', 'type' => 'object', 'sentAs' => 'Upload', 'properties' => array( @@ -3916,10 +4521,10 @@ return array ( 'Owner' => array( 'type' => 'object', 'properties' => array( - 'ID' => array( + 'DisplayName' => array( 'type' => 'string', ), - 'DisplayName' => array( + 'ID' => array( 'type' => 'string', ), ), @@ -3945,6 +4550,7 @@ return array ( 'xmlFlattened' => true, ), 'items' => array( + 'name' => 'CommonPrefix', 'type' => 'object', 'properties' => array( 'Prefix' => array( @@ -3953,6 +4559,10 @@ return array ( ), ), ), + 'EncodingType' => array( + 'type' => 'string', + 'location' => 'xml', + ), 'RequestId' => array( 'location' => 'header', 'sentAs' => 'x-amz-request-id', @@ -3991,6 +4601,7 @@ return array ( 'xmlFlattened' => true, ), 'items' => array( + 'name' => 'ObjectVersion', 'type' => 'object', 'sentAs' => 'Version', 'properties' => array( @@ -3998,7 +4609,7 @@ return array ( 'type' => 'string', ), 'Size' => array( - 'type' => 'string', + 'type' => 'numeric', ), 'StorageClass' => array( 'type' => 'string', @@ -4018,10 +4629,10 @@ return array ( 'Owner' => array( 'type' => 'object', 'properties' => array( - 'ID' => array( + 'DisplayName' => array( 'type' => 'string', ), - 'DisplayName' => array( + 'ID' => array( 'type' => 'string', ), ), @@ -4037,16 +4648,17 @@ return array ( 'xmlFlattened' => true, ), 'items' => array( + 'name' => 'DeleteMarkerEntry', 'type' => 'object', 'sentAs' => 'DeleteMarker', 'properties' => array( 'Owner' => array( 'type' => 'object', 'properties' => array( - 'ID' => array( + 'DisplayName' => array( 'type' => 'string', ), - 'DisplayName' => array( + 'ID' => array( 'type' => 'string', ), ), @@ -4074,6 +4686,10 @@ return array ( 'type' => 'string', 'location' => 'xml', ), + 'Delimiter' => array( + 'type' => 'string', + 'location' => 'xml', + ), 'MaxKeys' => array( 'type' => 'numeric', 'location' => 'xml', @@ -4085,6 +4701,7 @@ return array ( 'xmlFlattened' => true, ), 'items' => array( + 'name' => 'CommonPrefix', 'type' => 'object', 'properties' => array( 'Prefix' => array( @@ -4093,6 +4710,10 @@ return array ( ), ), ), + 'EncodingType' => array( + 'type' => 'string', + 'location' => 'xml', + ), 'RequestId' => array( 'location' => 'header', 'sentAs' => 'x-amz-request-id', @@ -4111,6 +4732,10 @@ return array ( 'type' => 'string', 'location' => 'xml', ), + 'NextMarker' => array( + 'type' => 'string', + 'location' => 'xml', + ), 'Contents' => array( 'type' => 'array', 'location' => 'xml', @@ -4118,6 +4743,7 @@ return array ( 'xmlFlattened' => true, ), 'items' => array( + 'name' => 'Object', 'type' => 'object', 'properties' => array( 'Key' => array( @@ -4138,10 +4764,10 @@ return array ( 'Owner' => array( 'type' => 'object', 'properties' => array( - 'ID' => array( + 'DisplayName' => array( 'type' => 'string', ), - 'DisplayName' => array( + 'ID' => array( 'type' => 'string', ), ), @@ -4157,6 +4783,10 @@ return array ( 'type' => 'string', 'location' => 'xml', ), + 'Delimiter' => array( + 'type' => 'string', + 'location' => 'xml', + ), 'MaxKeys' => array( 'type' => 'numeric', 'location' => 'xml', @@ -4168,6 +4798,7 @@ return array ( 'xmlFlattened' => true, ), 'items' => array( + 'name' => 'CommonPrefix', 'type' => 'object', 'properties' => array( 'Prefix' => array( @@ -4176,6 +4807,10 @@ return array ( ), ), ), + 'EncodingType' => array( + 'type' => 'string', + 'location' => 'xml', + ), 'RequestId' => array( 'location' => 'header', 'sentAs' => 'x-amz-request-id', @@ -4222,6 +4857,7 @@ return array ( 'xmlFlattened' => true, ), 'items' => array( + 'name' => 'Part', 'type' => 'object', 'sentAs' => 'Part', 'properties' => array( @@ -4256,10 +4892,10 @@ return array ( 'type' => 'object', 'location' => 'xml', 'properties' => array( - 'ID' => array( + 'DisplayName' => array( 'type' => 'string', ), - 'DisplayName' => array( + 'ID' => array( 'type' => 'string', ), ), @@ -4268,6 +4904,11 @@ return array ( 'type' => 'string', 'location' => 'xml', ), + 'RequestCharged' => array( + 'type' => 'string', + 'location' => 'header', + 'sentAs' => 'x-amz-request-charged', + ), 'RequestId' => array( 'location' => 'header', 'sentAs' => 'x-amz-request-id', @@ -4324,6 +4965,16 @@ return array ( ), ), ), + 'PutBucketNotificationConfigurationOutput' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'RequestId' => array( + 'location' => 'header', + 'sentAs' => 'x-amz-request-id', + ), + ), + ), 'PutBucketPolicyOutput' => array( 'type' => 'object', 'additionalProperties' => true, @@ -4334,6 +4985,16 @@ return array ( ), ), ), + 'PutBucketReplicationOutput' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'RequestId' => array( + 'location' => 'header', + 'sentAs' => 'x-amz-request-id', + ), + ), + ), 'PutBucketRequestPaymentOutput' => array( 'type' => 'object', 'additionalProperties' => true, @@ -4397,6 +5058,26 @@ return array ( 'location' => 'header', 'sentAs' => 'x-amz-version-id', ), + 'SSECustomerAlgorithm' => array( + 'type' => 'string', + 'location' => 'header', + 'sentAs' => 'x-amz-server-side-encryption-customer-algorithm', + ), + 'SSECustomerKeyMD5' => array( + 'type' => 'string', + 'location' => 'header', + 'sentAs' => 'x-amz-server-side-encryption-customer-key-MD5', + ), + 'SSEKMSKeyId' => array( + 'type' => 'string', + 'location' => 'header', + 'sentAs' => 'x-amz-server-side-encryption-aws-kms-key-id', + ), + 'RequestCharged' => array( + 'type' => 'string', + 'location' => 'header', + 'sentAs' => 'x-amz-request-charged', + ), 'RequestId' => array( 'location' => 'header', 'sentAs' => 'x-amz-request-id', @@ -4409,6 +5090,11 @@ return array ( 'type' => 'object', 'additionalProperties' => true, 'properties' => array( + 'RequestCharged' => array( + 'type' => 'string', + 'location' => 'header', + 'sentAs' => 'x-amz-request-charged', + ), 'RequestId' => array( 'location' => 'header', 'sentAs' => 'x-amz-request-id', @@ -4419,6 +5105,11 @@ return array ( 'type' => 'object', 'additionalProperties' => true, 'properties' => array( + 'RequestCharged' => array( + 'type' => 'string', + 'location' => 'header', + 'sentAs' => 'x-amz-request-charged', + ), 'RequestId' => array( 'location' => 'header', 'sentAs' => 'x-amz-request-id', @@ -4438,6 +5129,26 @@ return array ( 'type' => 'string', 'location' => 'header', ), + 'SSECustomerAlgorithm' => array( + 'type' => 'string', + 'location' => 'header', + 'sentAs' => 'x-amz-server-side-encryption-customer-algorithm', + ), + 'SSECustomerKeyMD5' => array( + 'type' => 'string', + 'location' => 'header', + 'sentAs' => 'x-amz-server-side-encryption-customer-key-MD5', + ), + 'SSEKMSKeyId' => array( + 'type' => 'string', + 'location' => 'header', + 'sentAs' => 'x-amz-server-side-encryption-aws-kms-key-id', + ), + 'RequestCharged' => array( + 'type' => 'string', + 'location' => 'header', + 'sentAs' => 'x-amz-request-charged', + ), 'RequestId' => array( 'location' => 'header', 'sentAs' => 'x-amz-request-id', @@ -4466,6 +5177,26 @@ return array ( 'location' => 'header', 'sentAs' => 'x-amz-server-side-encryption', ), + 'SSECustomerAlgorithm' => array( + 'type' => 'string', + 'location' => 'header', + 'sentAs' => 'x-amz-server-side-encryption-customer-algorithm', + ), + 'SSECustomerKeyMD5' => array( + 'type' => 'string', + 'location' => 'header', + 'sentAs' => 'x-amz-server-side-encryption-customer-key-MD5', + ), + 'SSEKMSKeyId' => array( + 'type' => 'string', + 'location' => 'header', + 'sentAs' => 'x-amz-server-side-encryption-aws-kms-key-id', + ), + 'RequestCharged' => array( + 'type' => 'string', + 'location' => 'header', + 'sentAs' => 'x-amz-request-charged', + ), 'RequestId' => array( 'location' => 'header', 'sentAs' => 'x-amz-request-id', @@ -4473,6 +5204,61 @@ return array ( ), ), ), + 'iterators' => array( + 'ListBuckets' => array( + 'result_key' => 'Buckets', + ), + 'ListMultipartUploads' => array( + 'limit_key' => 'MaxUploads', + 'more_results' => 'IsTruncated', + 'output_token' => array( + 'NextKeyMarker', + 'NextUploadIdMarker', + ), + 'input_token' => array( + 'KeyMarker', + 'UploadIdMarker', + ), + 'result_key' => array( + 'Uploads', + 'CommonPrefixes', + ), + ), + 'ListObjectVersions' => array( + 'more_results' => 'IsTruncated', + 'limit_key' => 'MaxKeys', + 'output_token' => array( + 'NextKeyMarker', + 'NextVersionIdMarker', + ), + 'input_token' => array( + 'KeyMarker', + 'VersionIdMarker', + ), + 'result_key' => array( + 'Versions', + 'DeleteMarkers', + 'CommonPrefixes', + ), + ), + 'ListObjects' => array( + 'more_results' => 'IsTruncated', + 'limit_key' => 'MaxKeys', + 'output_token' => 'NextMarker', + 'input_token' => 'Marker', + 'result_key' => array( + 'Contents', + 'CommonPrefixes', + ), + ), + 'ListParts' => array( + 'more_results' => 'IsTruncated', + 'limit_key' => 'MaxParts', + 'output_token' => 'NextPartNumberMarker', + 'input_token' => 'PartNumberMarker', + 'result_key' => 'Parts', + ), + ), 'waiters' => array( '__default__' => array( 'interval' => 5, diff --git a/inc/aws-sdk/Aws/S3/ResumableDownload.php b/inc/aws-sdk/Aws/S3/ResumableDownload.php index 386a077..6d99677 100755 --- a/inc/aws-sdk/Aws/S3/ResumableDownload.php +++ b/inc/aws-sdk/Aws/S3/ResumableDownload.php @@ -34,13 +34,13 @@ class ResumableDownload /** @var S3Client The S3 client to use to download objects and issue HEAD requests */ protected $client; - /** @var \Guzzle\Service\Resource\Model Model object returned when the initial HeadObject operation was called */ + /** @var Model Model object returned when the initial HeadObject operation was called */ protected $meta; /** @var array Array of parameters to pass to a GetObject operation */ protected $params; - /** @var \Guzzle\Http\EntityBody Where the object will be downloaded */ + /** @var EntityBody Where the object will be downloaded */ protected $target; /** diff --git a/inc/aws-sdk/Aws/S3/S3Client.php b/inc/aws-sdk/Aws/S3/S3Client.php index 8fdc666..b67282a 100755 --- a/inc/aws-sdk/Aws/S3/S3Client.php +++ b/inc/aws-sdk/Aws/S3/S3Client.php @@ -23,6 +23,7 @@ use Aws\Common\Client\UploadBodyListener; use Aws\Common\Enum\ClientOptions as Options; use Aws\Common\Exception\RuntimeException; use Aws\Common\Exception\InvalidArgumentException; +use Aws\Common\Signature\SignatureV4; use Aws\Common\Model\MultipartUpload\AbstractTransfer; use Aws\S3\Exception\AccessDeniedException; use Aws\S3\Exception\Parser\S3ExceptionParser; @@ -30,7 +31,6 @@ use Aws\S3\Exception\S3Exception; use Aws\S3\Model\ClearBucket; use Aws\S3\Model\MultipartUpload\AbstractTransfer as AbstractMulti; use Aws\S3\Model\MultipartUpload\UploadBuilder; -use Aws\S3\S3Signature; use Aws\S3\Sync\DownloadSyncBuilder; use Aws\S3\Sync\UploadSyncBuilder; use Guzzle\Common\Collection; @@ -42,7 +42,6 @@ use Guzzle\Plugin\Backoff\CurlBackoffStrategy; use Guzzle\Plugin\Backoff\ExponentialBackoffStrategy; use Guzzle\Plugin\Backoff\HttpBackoffStrategy; use Guzzle\Plugin\Backoff\TruncatedBackoffStrategy; -use Guzzle\Plugin\Md5\CommandContentMd5Plugin; use Guzzle\Service\Command\CommandInterface; use Guzzle\Service\Command\Factory\AliasFactory; use Guzzle\Service\Command\Factory\CompositeFactory; @@ -52,7 +51,7 @@ use Guzzle\Service\Resource\ResourceIteratorInterface; /** * Client to interact with Amazon Simple Storage Service * - * @method \Aws\S3\S3SignatureInterface getSignature() + * @method S3SignatureInterface getSignature() Returns the signature implementation used with the client * @method Model abortMultipartUpload(array $args = array()) {@command S3 AbortMultipartUpload} * @method Model completeMultipartUpload(array $args = array()) {@command S3 CompleteMultipartUpload} * @method Model copyObject(array $args = array()) {@command S3 CopyObject} @@ -62,6 +61,7 @@ use Guzzle\Service\Resource\ResourceIteratorInterface; * @method Model deleteBucketCors(array $args = array()) {@command S3 DeleteBucketCors} * @method Model deleteBucketLifecycle(array $args = array()) {@command S3 DeleteBucketLifecycle} * @method Model deleteBucketPolicy(array $args = array()) {@command S3 DeleteBucketPolicy} + * @method Model deleteBucketReplication(array $args = array()) {@command S3 DeleteBucketReplication} * @method Model deleteBucketTagging(array $args = array()) {@command S3 DeleteBucketTagging} * @method Model deleteBucketWebsite(array $args = array()) {@command S3 DeleteBucketWebsite} * @method Model deleteObject(array $args = array()) {@command S3 DeleteObject} @@ -72,7 +72,9 @@ use Guzzle\Service\Resource\ResourceIteratorInterface; * @method Model getBucketLocation(array $args = array()) {@command S3 GetBucketLocation} * @method Model getBucketLogging(array $args = array()) {@command S3 GetBucketLogging} * @method Model getBucketNotification(array $args = array()) {@command S3 GetBucketNotification} + * @method Model getBucketNotificationConfiguration(array $args = array()) {@command S3 GetBucketNotificationConfiguration} * @method Model getBucketPolicy(array $args = array()) {@command S3 GetBucketPolicy} + * @method Model getBucketReplication(array $args = array()) {@command S3 GetBucketReplication} * @method Model getBucketRequestPayment(array $args = array()) {@command S3 GetBucketRequestPayment} * @method Model getBucketTagging(array $args = array()) {@command S3 GetBucketTagging} * @method Model getBucketVersioning(array $args = array()) {@command S3 GetBucketVersioning} @@ -92,7 +94,9 @@ use Guzzle\Service\Resource\ResourceIteratorInterface; * @method Model putBucketLifecycle(array $args = array()) {@command S3 PutBucketLifecycle} * @method Model putBucketLogging(array $args = array()) {@command S3 PutBucketLogging} * @method Model putBucketNotification(array $args = array()) {@command S3 PutBucketNotification} + * @method Model putBucketNotificationConfiguration(array $args = array()) {@command S3 PutBucketNotificationConfiguration} * @method Model putBucketPolicy(array $args = array()) {@command S3 PutBucketPolicy} + * @method Model putBucketReplication(array $args = array()) {@command S3 PutBucketReplication} * @method Model putBucketRequestPayment(array $args = array()) {@command S3 PutBucketRequestPayment} * @method Model putBucketTagging(array $args = array()) {@command S3 PutBucketTagging} * @method Model putBucketVersioning(array $args = array()) {@command S3 PutBucketVersioning} @@ -102,17 +106,17 @@ use Guzzle\Service\Resource\ResourceIteratorInterface; * @method Model restoreObject(array $args = array()) {@command S3 RestoreObject} * @method Model uploadPart(array $args = array()) {@command S3 UploadPart} * @method Model uploadPartCopy(array $args = array()) {@command S3 UploadPartCopy} - * @method waitUntilBucketExists(array $input) Wait until a bucket exists. The input array uses the parameters of the HeadBucket operation and waiter specific settings - * @method waitUntilBucketNotExists(array $input) Wait until a bucket does not exist. The input array uses the parameters of the HeadBucket operation and waiter specific settings - * @method waitUntilObjectExists(array $input) Wait until an object exists. The input array uses the parameters of the HeadObject operation and waiter specific settings + * @method waitUntilBucketExists(array $input) The input array uses the parameters of the HeadBucket operation and waiter specific settings + * @method waitUntilBucketNotExists(array $input) The input array uses the parameters of the HeadBucket operation and waiter specific settings + * @method waitUntilObjectExists(array $input) The input array uses the parameters of the HeadObject operation and waiter specific settings * @method ResourceIteratorInterface getListBucketsIterator(array $args = array()) The input array uses the parameters of the ListBuckets operation * @method ResourceIteratorInterface getListMultipartUploadsIterator(array $args = array()) The input array uses the parameters of the ListMultipartUploads operation - * @method ResourceIteratorInterface getListObjectsIterator(array $args = array()) The input array uses the parameters of the ListObjects operation * @method ResourceIteratorInterface getListObjectVersionsIterator(array $args = array()) The input array uses the parameters of the ListObjectVersions operation + * @method ResourceIteratorInterface getListObjectsIterator(array $args = array()) The input array uses the parameters of the ListObjects operation * @method ResourceIteratorInterface getListPartsIterator(array $args = array()) The input array uses the parameters of the ListParts operation * - * @link http://docs.aws.amazon.com/aws-sdk-php/guide/latest/service-s3.html User guide - * @link http://docs.aws.amazon.com/aws-sdk-php/latest/class-Aws.S3.S3Client.html API docs + * @link http://docs.aws.amazon.com/aws-sdk-php/v2/guide/service-s3.html User guide + * @link http://docs.aws.amazon.com/aws-sdk-php/v2/api/class-Aws.S3.S3Client.html API docs */ class S3Client extends AbstractClient { @@ -149,9 +153,6 @@ class S3Client extends AbstractClient 'DeleteObjectExpirationConfig' => 'DeleteBucketLifecycle', ); - /** - * @inheritdoc - */ protected $directory = __DIR__; /** @@ -159,8 +160,8 @@ class S3Client extends AbstractClient * * @param array|Collection $config Client configuration data * - * @return self - * @see \Aws\Common\Client\DefaultClient for a list of available configuration options + * @return S3Client + * @link http://docs.aws.amazon.com/aws-sdk-php/v2/guide/configuration.html#client-configuration-options */ public static function factory($config = array()) { @@ -168,25 +169,14 @@ class S3Client extends AbstractClient // Configure the custom exponential backoff plugin for retrying S3 specific errors if (!isset($config[Options::BACKOFF])) { - $config[Options::BACKOFF] = new BackoffPlugin( - new TruncatedBackoffStrategy(3, - new HttpBackoffStrategy(null, - new SocketTimeoutChecker( - new CurlBackoffStrategy(null, - new ExpiredCredentialsChecker($exceptionParser, - new ExponentialBackoffStrategy() - ) - ) - ) - ) - ) - ); + $config[Options::BACKOFF] = static::createBackoffPlugin($exceptionParser); } + $config[Options::SIGNATURE] = $signature = static::createSignature($config); + $client = ClientBuilder::factory(__NAMESPACE__) ->setConfig($config) ->setConfigDefaults(array( - Options::SIGNATURE => new S3Signature(), Options::VERSION => self::LATEST_API_VERSION, Options::SERVICE_DESCRIPTION => __DIR__ . '/Resources/s3-%s.php' )) @@ -222,20 +212,21 @@ class S3Client extends AbstractClient // Use virtual hosted buckets when possible $client->addSubscriber(new BucketStyleListener()); - // Ensure that ACP headers are applied when needed $client->addSubscriber(new AcpListener()); - - // Validate and add Content-MD5 hashes - $client->addSubscriber(new CommandContentMd5Plugin()); + // Validate and add required Content-MD5 hashes (e.g. DeleteObjects) + $client->addSubscriber(new S3Md5Listener($signature)); // Allow for specifying bodies with file paths and file handles $client->addSubscriber(new UploadBodyListener(array('PutObject', 'UploadPart'))); + // Ensures that if a SSE-CPK key is provided, the key and md5 are formatted correctly + $client->addSubscriber(new SseCpkListener); + // Add aliases for some S3 operations $default = CompositeFactory::getDefaultChain($client); $default->add( - new AliasFactory($client, self::$commandAliases), + new AliasFactory($client, static::$commandAliases), 'Guzzle\Service\Command\Factory\ServiceDescriptionFactory' ); $client->setCommandFactory($default); @@ -243,6 +234,70 @@ class S3Client extends AbstractClient return $client; } + /** + * Create an Amazon S3 specific backoff plugin + * + * @param S3ExceptionParser $exceptionParser + * + * @return BackoffPlugin + */ + private static function createBackoffPlugin(S3ExceptionParser $exceptionParser) + { + return new BackoffPlugin( + new TruncatedBackoffStrategy(3, + new IncompleteMultipartUploadChecker( + new CurlBackoffStrategy(null, + new HttpBackoffStrategy(null, + new SocketTimeoutChecker( + new ExpiredCredentialsChecker($exceptionParser, + new ExponentialBackoffStrategy() + ) + ) + ) + ) + ) + ) + ); + } + + /** + * Create an appropriate signature based on the configuration settings + * + * @param $config + * + * @return \Aws\Common\Signature\SignatureInterface + * @throws InvalidArgumentException + */ + private static function createSignature($config) + { + $currentValue = isset($config[Options::SIGNATURE]) ? $config[Options::SIGNATURE] : null; + + // Force v4 if no value is provided, a region is in the config, and + // the region starts with "cn-" or "eu-central-". + $requiresV4 = !$currentValue + && isset($config['region']) + && (strpos($config['region'], 'eu-central-') === 0 + || strpos($config['region'], 'cn-') === 0); + + // Use the Amazon S3 signature V4 when the value is set to "v4" or when + // the value is not set and the region starts with "cn-". + if ($currentValue == 'v4' || $requiresV4) { + // Force SignatureV4 for specific regions or if specified in the config + $currentValue = new S3SignatureV4('s3'); + } elseif (!$currentValue || $currentValue == 's3') { + // Use the Amazon S3 signature by default + $currentValue = new S3Signature(); + } + + // A region is require with v4 + if ($currentValue instanceof SignatureV4 && !isset($config['region'])) { + throw new InvalidArgumentException('A region must be specified ' + . 'when using signature version 4'); + } + + return $currentValue; + } + /** * Determine if a string is a valid name for a DNS compatible Amazon S3 * bucket, meaning the bucket can be used as a subdomain in a URL (e.g., @@ -256,12 +311,10 @@ class S3Client extends AbstractClient { $bucketLen = strlen($bucket); if ($bucketLen < 3 || $bucketLen > 63 || - // Cannot start or end with a '.' - $bucket[0] == '.' || $bucket[$bucketLen - 1] == '.' || // Cannot look like an IP address preg_match('/(\d+\.){3}\d+$/', $bucket) || // Cannot include special characters, must start and end with lower alnum - !preg_match('/^[a-z0-9][a-z0-9\-\.]*[a-z0-9]?$/', $bucket) + !preg_match('/^[a-z0-9]([a-z0-9\-\.]*[a-z0-9])?$/', $bucket) ) { return false; } @@ -288,42 +341,19 @@ class S3Client extends AbstractClient . 'request object'); } - if ($expires instanceof \DateTime) { - $expires = $expires->getTimestamp(); - } elseif (!is_numeric($expires)) { - $expires = strtotime($expires); - } - - // Operate on a clone of the request, so the original is not altered - $request = clone $request; - - // URL encoding already occurs in the URI template expansion. Undo that and encode using the same encoding as - // GET object, PUT object, etc. - $path = $this->encodeKey(rawurldecode($request->getPath())); - $request->setPath($path); - - // Make sure to handle temporary credentials - if ($token = $this->credentials->getSecurityToken()) { - $request->setHeader('x-amz-security-token', $token); - $request->getQuery()->set('x-amz-security-token', $token); - } - - // Set query params required for pre-signed URLs - $request->getQuery() - ->set('AWSAccessKeyId', $this->credentials->getAccessKeyId()) - ->set('Expires', $expires) - ->set('Signature', $this->signature->signString( - $this->signature->createCanonicalizedString($request, $expires), - $this->credentials - )); - - return $request->getUrl(); + return $this->signature->createPresignedUrl($request, $this->credentials, $expires); } /** * Returns the URL to an object identified by its bucket and key. If an expiration time is provided, the URL will * be signed and set to expire at the provided time. * + * Note: This method does not ensure that the generated URL is valid. For example, the bucket referenced may not + * exist, the key referenced may not exist, and the URL might include parameters that require it to be signed. + * If you need to use parameters that require a signed URL (e.g., ResponseCacheControl), then you must sign the + * URL either by providing an $expires argument or by signing the URL returned by this method in some other + * manner. + * * @param string $bucket The name of the bucket where the object is located * @param string $key The key of the object * @param mixed $expires The time at which the URL should expire @@ -443,7 +473,7 @@ class S3Client extends AbstractClient /** * Register the Amazon S3 stream wrapper and associates it with this client object * - * @return self + * @return $this */ public function registerStreamWrapper() { @@ -502,8 +532,7 @@ class S3Client extends AbstractClient ->setTransferOptions($options->toArray()) ->addOptions($options['params']) ->setOption('ACL', $acl) - ->build() - ->upload(); + ->build(); if ($options['before_upload']) { $transfer->getEventDispatcher()->addListener( @@ -512,7 +541,7 @@ class S3Client extends AbstractClient ); } - return $transfer; + return $transfer->upload(); } /** @@ -534,7 +563,13 @@ class S3Client extends AbstractClient */ public function uploadDirectory($directory, $bucket, $keyPrefix = null, array $options = array()) { - $options = Collection::fromConfig($options, array('base_dir' => $directory)); + $options = Collection::fromConfig( + $options, + array( + 'base_dir' => realpath($directory) ?: $directory + ) + ); + $builder = $options['builder'] ?: UploadSyncBuilder::getInstance(); $builder->uploadFromDirectory($directory) ->setClient($this) diff --git a/inc/aws-sdk/Aws/S3/S3Md5Listener.php b/inc/aws-sdk/Aws/S3/S3Md5Listener.php new file mode 100644 index 0000000..7558c47 --- /dev/null +++ b/inc/aws-sdk/Aws/S3/S3Md5Listener.php @@ -0,0 +1,73 @@ + 'onCommandAfterPrepare'); + } + + public function __construct(SignatureInterface $signature) + { + $this->signature = $signature; + } + + public function onCommandAfterPrepare(Event $event) + { + $command = $event['command']; + $operation = $command->getOperation(); + + if ($operation->getData('contentMd5')) { + // Add the MD5 if it is required for all signers + $this->addMd5($command); + } elseif ($operation->hasParam('ContentMD5')) { + $value = $command['ContentMD5']; + // Add a computed MD5 if the parameter is set to true or if + // not using Signature V4 and the value is not set (null). + if ($value === true || + ($value === null && !($this->signature instanceof SignatureV4)) + ) { + $this->addMd5($command); + } + } + } + + private function addMd5(CommandInterface $command) + { + $request = $command->getRequest(); + $body = $request->getBody(); + if ($body && $body->getSize() > 0) { + if (false !== ($md5 = $body->getContentMd5(true, true))) { + $request->setHeader('Content-MD5', $md5); + } + } + } +} diff --git a/inc/aws-sdk/Aws/S3/S3Signature.php b/inc/aws-sdk/Aws/S3/S3Signature.php index 2c846fb..ef9a86b 100755 --- a/inc/aws-sdk/Aws/S3/S3Signature.php +++ b/inc/aws-sdk/Aws/S3/S3Signature.php @@ -17,7 +17,6 @@ namespace Aws\S3; use Aws\Common\Credentials\CredentialsInterface; -use Aws\Common\Enum\DateFormat; use Guzzle\Http\Message\RequestInterface; use Guzzle\Http\QueryString; use Guzzle\Http\Url; @@ -59,14 +58,9 @@ class S3Signature implements S3SignatureInterface 'website', ); - /** - * @var array Sorted headers that must be signed - */ - protected $signableHeaders = array('Content-MD5', 'Content-Type'); + /** @var array Sorted headers that must be signed */ + private $signableHeaders = array('Content-MD5', 'Content-Type'); - /** - * {@inheritdoc} - */ public function signRequest(RequestInterface $request, CredentialsInterface $credentials) { // Ensure that the signable query string parameters are sorted @@ -77,10 +71,8 @@ class S3Signature implements S3SignatureInterface $request->setHeader('x-amz-security-token', $token); } - // Add a date header if one is not set - if (!$request->hasHeader('date') && !$request->hasHeader('x-amz-date')) { - $request->setHeader('Date', gmdate(DateFormat::RFC2822)); - } + $request->removeHeader('x-amz-date'); + $request->setHeader('Date', gmdate(\DateTime::RFC2822)); $stringToSign = $this->createCanonicalizedString($request); $request->getParams()->set('aws.string_to_sign', $stringToSign); @@ -91,17 +83,57 @@ class S3Signature implements S3SignatureInterface ); } - /** - * {@inheritdoc} - */ + public function createPresignedUrl( + RequestInterface $request, + CredentialsInterface $credentials, + $expires + ) { + if ($expires instanceof \DateTime) { + $expires = $expires->getTimestamp(); + } elseif (!is_numeric($expires)) { + $expires = strtotime($expires); + } + + // Operate on a clone of the request, so the original is not altered + $request = clone $request; + + // URL encoding already occurs in the URI template expansion. Undo that and encode using the same encoding as + // GET object, PUT object, etc. + $path = S3Client::encodeKey(rawurldecode($request->getPath())); + $request->setPath($path); + + // Make sure to handle temporary credentials + if ($token = $credentials->getSecurityToken()) { + $request->setHeader('x-amz-security-token', $token); + $request->getQuery()->set('x-amz-security-token', $token); + } + + // Set query params required for pre-signed URLs + $request->getQuery() + ->set('AWSAccessKeyId', $credentials->getAccessKeyId()) + ->set('Expires', $expires) + ->set('Signature', $this->signString( + $this->createCanonicalizedString($request, $expires), + $credentials + )); + + // Move X-Amz-* headers to the query string + foreach ($request->getHeaders() as $name => $header) { + $name = strtolower($name); + if (strpos($name, 'x-amz-') === 0) { + $request->getQuery()->set($name, (string) $header); + $request->removeHeader($name); + } + } + + return $request->getUrl(); + } + public function signString($string, CredentialsInterface $credentials) { return base64_encode(hash_hmac('sha1', $string, $credentials->getSecretKey(), true)); } - /** - * {@inheritdoc} - */ public function createCanonicalizedString(RequestInterface $request, $expires = null) { $buffer = $request->getMethod() . "\n"; @@ -128,12 +160,11 @@ class S3Signature implements S3SignatureInterface * * @return string Returns canonicalized AMZ headers. */ - protected function createCanonicalizedAmzHeaders(RequestInterface $request) + private function createCanonicalizedAmzHeaders(RequestInterface $request) { $headers = array(); - foreach ($request->getHeaders(true) as $header) { - /** @var $header \Guzzle\Http\Message\Header */ - $name = strtolower($header->getName()); + foreach ($request->getHeaders() as $name => $header) { + $name = strtolower($name); if (strpos($name, 'x-amz-') === 0) { $value = trim((string) $header); if ($value || $value === '0') { @@ -142,13 +173,13 @@ class S3Signature implements S3SignatureInterface } } - if (empty($headers)) { + if (!$headers) { return ''; - } else { - ksort($headers); - - return implode("\n", $headers) . "\n"; } + + ksort($headers); + + return implode("\n", $headers) . "\n"; } /** @@ -158,7 +189,7 @@ class S3Signature implements S3SignatureInterface * * @return string */ - protected function createCanonicalizedResource(RequestInterface $request) + private function createCanonicalizedResource(RequestInterface $request) { $buffer = $request->getParams()->get('s3.resource'); // When sending a raw HTTP request (e.g. $client->get()) @@ -179,11 +210,17 @@ class S3Signature implements S3SignatureInterface $query = $request->getQuery(); $first = true; foreach ($this->signableQueryString as $key) { - if ($value = $query->get($key)) { + if ($query->hasKey($key)) { + $value = $query[$key]; $buffer .= $first ? '?' : '&'; $first = false; $buffer .= $key; - if ($value !== QueryString::BLANK) { + // Don't add values for empty sub-resources + if ($value !== '' && + $value !== false && + $value !== null && + $value !== QueryString::BLANK + ) { $buffer .= "={$value}"; } } @@ -199,7 +236,7 @@ class S3Signature implements S3SignatureInterface * * @return string */ - protected function parseBucketName(RequestInterface $request) + private function parseBucketName(RequestInterface $request) { $baseUrl = Url::factory($request->getClient()->getBaseUrl()); $baseHost = $baseUrl->getHost(); diff --git a/inc/aws-sdk/Aws/S3/S3SignatureInterface.php b/inc/aws-sdk/Aws/S3/S3SignatureInterface.php index b57193c..0b7e940 100755 --- a/inc/aws-sdk/Aws/S3/S3SignatureInterface.php +++ b/inc/aws-sdk/Aws/S3/S3SignatureInterface.php @@ -17,32 +17,8 @@ namespace Aws\S3; use Aws\Common\Signature\SignatureInterface; -use Aws\Common\Credentials\CredentialsInterface; -use Guzzle\Http\Message\RequestInterface; /** - * Amazon S3 signature interface - * @link http://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html + * @deprecated */ -interface S3SignatureInterface extends SignatureInterface -{ - /** - * Sign a string for Amazon S3 - * - * @param string $string String to sign - * @param CredentialsInterface $credentials Credentials used to sign - * - * @return string - */ - public function signString($string, CredentialsInterface $credentials); - - /** - * Create a canonicalized string for a signature. - * - * @param RequestInterface $request Base on the request - * @param string $expires Pass a UNIX timestamp if creating a query signature - * - * @return string Returns a canonicalized string for an Amazon S3 signature. - */ - public function createCanonicalizedString(RequestInterface $request, $expires = null); -} +interface S3SignatureInterface extends SignatureInterface {} diff --git a/inc/aws-sdk/Aws/S3/S3SignatureV4.php b/inc/aws-sdk/Aws/S3/S3SignatureV4.php new file mode 100644 index 0000000..edbb4fc --- /dev/null +++ b/inc/aws-sdk/Aws/S3/S3SignatureV4.php @@ -0,0 +1,60 @@ +hasHeader('x-amz-content-sha256')) { + $request->setHeader( + 'x-amz-content-sha256', + $this->getPayload($request) + ); + } + + parent::signRequest($request, $credentials); + } + + /** + * Override used to allow pre-signed URLs to be created for an + * in-determinate request payload. + */ + protected function getPresignedPayload(RequestInterface $request) + { + return 'UNSIGNED-PAYLOAD'; + } + + /** + * Amazon S3 does not double-encode the path component in the canonical req + */ + protected function createCanonicalizedPath(RequestInterface $request) + { + return '/' . ltrim($request->getPath(), '/'); + } +} diff --git a/inc/aws-sdk/Aws/S3/SocketTimeoutChecker.php b/inc/aws-sdk/Aws/S3/SocketTimeoutChecker.php index e0cfa40..ede2b96 100755 --- a/inc/aws-sdk/Aws/S3/SocketTimeoutChecker.php +++ b/inc/aws-sdk/Aws/S3/SocketTimeoutChecker.php @@ -65,18 +65,6 @@ class SocketTimeoutChecker extends AbstractBackoffStrategy && $response->getStatusCode() == 400 && strpos($response->getBody(), self::ERR) ) { - // Check if the request is sending a local file, and if so, clear the stat cache and recalculate the size. - if ($request instanceof EntityEnclosingRequestInterface) { - if ($request->getBody()->getWrapper() == 'plainfile') { - $filename = $request->getBody()->getUri(); - // Clear the cache so that we send accurate file sizes - clearstatcache(true, $filename); - $length = filesize($filename); - $request->getBody()->setSize($length); - $request->setHeader('Content-Length', $length); - } - } - return true; } } diff --git a/inc/aws-sdk/Aws/S3/SseCpkListener.php b/inc/aws-sdk/Aws/S3/SseCpkListener.php new file mode 100644 index 0000000..c1a9260 --- /dev/null +++ b/inc/aws-sdk/Aws/S3/SseCpkListener.php @@ -0,0 +1,68 @@ + 'onCommandBeforePrepare'); + } + + public function onCommandBeforePrepare(Event $event) + { + /** @var CommandInterface $command */ + $command = $event['command']; + + // Allows only HTTPS connections when using SSE-C + if ($command['SSECustomerKey'] || + $command['CopySourceSSECustomerKey'] + ) { + $this->validateScheme($command); + } + + // Prepare the normal SSE-CPK headers + if ($command['SSECustomerKey']) { + $this->prepareSseParams($command); + } + + // If it's a copy operation, prepare the SSE-CPK headers for the source. + if ($command['CopySourceSSECustomerKey']) { + $this->prepareSseParams($command, true); + } + } + + private function validateScheme(CommandInterface $command) + { + if ($command->getClient()->getConfig('scheme') !== 'https') { + throw new RuntimeException('You must configure your S3 client to ' + . 'use HTTPS in order to use the SSE-C features.'); + } + } + + private function prepareSseParams( + CommandInterface $command, + $isCopy = false + ) { + $prefix = $isCopy ? 'CopySource' : ''; + + // Base64 encode the provided key + $key = $command[$prefix . 'SSECustomerKey']; + $command[$prefix . 'SSECustomerKey'] = base64_encode($key); + + // Base64 the provided MD5 or, generate an MD5 if not provided + if ($md5 = $command[$prefix . 'SSECustomerKeyMD5']) { + $command[$prefix . 'SSECustomerKeyMD5'] = base64_encode($md5); + } else { + $command[$prefix . 'SSECustomerKeyMD5'] = base64_encode(md5($key, true)); + } + } +} diff --git a/inc/aws-sdk/Aws/S3/StreamWrapper.php b/inc/aws-sdk/Aws/S3/StreamWrapper.php index 4af2f80..5a5fbf5 100755 --- a/inc/aws-sdk/Aws/S3/StreamWrapper.php +++ b/inc/aws-sdk/Aws/S3/StreamWrapper.php @@ -20,9 +20,10 @@ use Aws\Common\Exception\RuntimeException; use Aws\S3\Exception\S3Exception; use Aws\S3\Exception\NoSuchKeyException; use Aws\S3\Iterator\ListObjectsIterator; -use Guzzle\Http\Mimetypes; use Guzzle\Http\EntityBody; use Guzzle\Http\CachingEntityBody; +use Guzzle\Http\Mimetypes; +use Guzzle\Iterator\FilterIterator; use Guzzle\Stream\PhpStreamRequestFactory; use Guzzle\Service\Command\CommandInterface; @@ -71,146 +72,145 @@ use Guzzle\Service\Command\CommandInterface; * Stream context options: * * - "seekable": Set to true to create a seekable "r" (read only) stream by using a php://temp stream buffer - * - "throw_exceptions": Set to true to throw exceptions instead of trigger_errors * - For "unlink" only: Any option that can be passed to the DeleteObject operation */ class StreamWrapper { - /** - * @var resource|null Stream context (this is set by PHP when a context is used) - */ - public $context; - - /** - * @var S3Client Client used to send requests - */ - protected static $client; - - /** - * @var string Mode the stream was opened with - */ - protected $mode; - - /** - * @var EntityBody Underlying stream resource - */ - protected $body; - - /** - * @var array Current parameters to use with the flush operation - */ - protected $params; - - /** - * @var ListObjectsIterator Iterator used with opendir() and subsequent readdir() calls - */ - protected $objectIterator; - - /** - * @var string The bucket that was opened when opendir() was called - */ - protected $openedBucket; - - /** - * @var string The prefix of the bucket that was opened with opendir() - */ - protected $openedBucketPrefix; - - /** - * @var array The next key to retrieve when using a directory iterator. Helps for fast directory traversal. - */ - protected static $nextStat = array(); - - /** - * Register the 's3://' stream wrapper - * - * @param S3Client $client Client to use with the stream wrapper - */ - public static function register(S3Client $client) - { - if (in_array('s3', stream_get_wrappers())) { - stream_wrapper_unregister('s3'); - } - - stream_wrapper_register('s3', __CLASS__, STREAM_IS_URL); - self::$client = $client; - } - - /** - * Close the stream - */ - public function stream_close() - { - $this->body = null; - } - - /** - * @param string $path - * @param string $mode - * @param int $options - * @param string $opened_path - * - * @return bool - */ - public function stream_open($path, $mode, $options, &$opened_path) - { - // We don't care about the binary flag - $this->mode = $mode = rtrim($mode, 'bt'); - $this->params = $params = $this->getParams($path); - $errors = array(); - - if (!$params['Key']) { - $errors[] = 'Cannot open a bucket. You must specify a path in the form of s3://bucket/key'; - } - - if (strpos($mode, '+')) { - $errors[] = 'The Amazon S3 stream wrapper does not allow simultaneous reading and writing.'; - } + /** + * @var resource|null Stream context (this is set by PHP when a context is used) + */ + public $context; + + /** + * @var S3Client Client used to send requests + */ + protected static $client; + + /** + * @var string Mode the stream was opened with + */ + protected $mode; + + /** + * @var EntityBody Underlying stream resource + */ + protected $body; + + /** + * @var array Current parameters to use with the flush operation + */ + protected $params; + + /** + * @var ListObjectsIterator Iterator used with opendir() and subsequent readdir() calls + */ + protected $objectIterator; + + /** + * @var string The bucket that was opened when opendir() was called + */ + protected $openedBucket; + + /** + * @var string The prefix of the bucket that was opened with opendir() + */ + protected $openedBucketPrefix; + + /** + * @var array The next key to retrieve when using a directory iterator. Helps for fast directory traversal. + */ + protected static $nextStat = array(); + + /** + * Register the 's3://' stream wrapper + * + * @param S3Client $client Client to use with the stream wrapper + */ + public static function register(S3Client $client) + { + if (in_array('s3', stream_get_wrappers())) { + stream_wrapper_unregister('s3'); + } - if (!in_array($mode, array('r', 'w', 'a', 'x'))) { - $errors[] = "Mode not supported: {$mode}. Use one 'r', 'w', 'a', or 'x'."; - } + stream_wrapper_register('s3', get_called_class(), STREAM_IS_URL); + static::$client = $client; + } + + /** + * Close the stream + */ + public function stream_close() + { + $this->body = null; + } + + /** + * @param string $path + * @param string $mode + * @param int $options + * @param string $opened_path + * + * @return bool + */ + public function stream_open($path, $mode, $options, &$opened_path) + { + // We don't care about the binary flag + $this->mode = $mode = rtrim($mode, 'bt'); + $this->params = $params = $this->getParams($path); + $errors = array(); + + if (!$params['Key']) { + $errors[] = 'Cannot open a bucket. You must specify a path in the form of s3://bucket/key'; + } - // When using mode "x" validate if the file exists before attempting to read - if ($mode == 'x' && self::$client->doesObjectExist($params['Bucket'], $params['Key'], $this->getOptions())) { - $errors[] = "{$path} already exists on Amazon S3"; - } + if (strpos($mode, '+')) { + $errors[] = 'The Amazon S3 stream wrapper does not allow simultaneous reading and writing.'; + } - if (!$errors) { - if ($mode == 'r') { - $this->openReadStream($params, $errors); - } elseif ($mode == 'a') { - $this->openAppendStream($params, $errors); - } else { - $this->openWriteStream($params, $errors); - } - } + if (!in_array($mode, array('r', 'w', 'a', 'x'))) { + $errors[] = "Mode not supported: {$mode}. Use one 'r', 'w', 'a', or 'x'."; + } - return $errors ? $this->triggerError($errors) : true; - } + // When using mode "x" validate if the file exists before attempting to read + if ($mode == 'x' && static::$client->doesObjectExist($params['Bucket'], $params['Key'], $this->getOptions())) { + $errors[] = "{$path} already exists on Amazon S3"; + } - /** - * @return bool - */ - public function stream_eof() - { - return $this->body->feof(); - } + if (!$errors) { + if ($mode == 'r') { + $this->openReadStream($params, $errors); + } elseif ($mode == 'a') { + $this->openAppendStream($params, $errors); + } else { + $this->openWriteStream($params, $errors); + } + } - /** - * @return bool - */ - public function stream_flush() - { - if ($this->mode == 'r') { - return false; - } + return $errors ? $this->triggerError($errors) : true; + } + + /** + * @return bool + */ + public function stream_eof() + { + return $this->body->feof(); + } + + /** + * @return bool + */ + public function stream_flush() + { + if ($this->mode == 'r') { + return false; + } - $this->body->rewind(); - $params = $this->params; - $params['Body'] = $this->body; + $this->body->rewind(); + $params = $this->params; + $params['Body'] = $this->body; - // Attempt to guess the ContentType of the upload based on the + // Attempt to guess the ContentType of the upload based on the // file extension of the key if (!isset($params['ContentType']) && ($type = Mimetypes::getInstance()->fromFilename($params['Key'])) @@ -218,93 +218,93 @@ class StreamWrapper $params['ContentType'] = $type; } - try { - self::$client->putObject($params); - return true; - } catch (\Exception $e) { - return $this->triggerError($e->getMessage()); - } - } - - /** - * Read data from the underlying stream - * - * @param int $count Amount of bytes to read - * - * @return string - */ - public function stream_read($count) - { - return $this->body->read($count); - } - - /** - * Seek to a specific byte in the stream - * - * @param int $offset Seek offset - * @param int $whence Whence (SEEK_SET, SEEK_CUR, SEEK_END) - * - * @return bool - */ - public function stream_seek($offset, $whence = SEEK_SET) - { - return $this->body->seek($offset, $whence); - } - - /** - * Get the current position of the stream - * - * @return int Returns the current position in the stream - */ - public function stream_tell() - { - return $this->body->ftell(); - } - - /** - * Write data the to the stream - * - * @param string $data - * - * @return int Returns the number of bytes written to the stream - */ - public function stream_write($data) - { - return $this->body->write($data); - } - - /** - * Delete a specific object - * - * @param string $path - * @return bool - */ - public function unlink($path) - { - try { - $this->clearStatInfo($path); - self::$client->deleteObject($this->getParams($path)); - return true; - } catch (\Exception $e) { - return $this->triggerError($e->getMessage()); - } - } - - /** - * @return array - */ - public function stream_stat() - { - $stat = fstat($this->body->getStream()); - // Add the size of the underlying stream if it is known - if ($this->mode == 'r' && $this->body->getSize()) { - $stat[7] = $stat['size'] = $this->body->getSize(); - } + try { + static::$client->putObject($params); + return true; + } catch (\Exception $e) { + return $this->triggerError($e->getMessage()); + } + } + + /** + * Read data from the underlying stream + * + * @param int $count Amount of bytes to read + * + * @return string + */ + public function stream_read($count) + { + return $this->body->read($count); + } + + /** + * Seek to a specific byte in the stream + * + * @param int $offset Seek offset + * @param int $whence Whence (SEEK_SET, SEEK_CUR, SEEK_END) + * + * @return bool + */ + public function stream_seek($offset, $whence = SEEK_SET) + { + return $this->body->seek($offset, $whence); + } + + /** + * Get the current position of the stream + * + * @return int Returns the current position in the stream + */ + public function stream_tell() + { + return $this->body->ftell(); + } + + /** + * Write data the to the stream + * + * @param string $data + * + * @return int Returns the number of bytes written to the stream + */ + public function stream_write($data) + { + return $this->body->write($data); + } + + /** + * Delete a specific object + * + * @param string $path + * @return bool + */ + public function unlink($path) + { + try { + $this->clearStatInfo($path); + static::$client->deleteObject($this->getParams($path)); + return true; + } catch (\Exception $e) { + return $this->triggerError($e->getMessage()); + } + } + + /** + * @return array + */ + public function stream_stat() + { + $stat = fstat($this->body->getStream()); + // Add the size of the underlying stream if it is known + if ($this->mode == 'r' && $this->body->getSize()) { + $stat[7] = $stat['size'] = $this->body->getSize(); + } - return $stat; - } + return $stat; + } - /** + /** * Provides information for is_dir, is_file, filesize, etc. Works on buckets, keys, and prefixes * * @param string $path @@ -407,420 +407,534 @@ class StreamWrapper } } - /** - * Support for mkdir(). - * - * @param string $path Directory which should be created. - * @param int $mode Permissions. 700-range permissions map to ACL_PUBLIC. 600-range permissions map to - * ACL_AUTH_READ. All other permissions map to ACL_PRIVATE. Expects octal form. - * @param int $options A bitwise mask of values, such as STREAM_MKDIR_RECURSIVE. (unused) - * - * @return bool - * @link http://www.php.net/manual/en/streamwrapper.mkdir.php - */ - public function mkdir($path, $mode, $options) - { - $params = $this->getParams($path); - $this->clearStatInfo($path); - - if (!$params['Bucket'] || $params['Key']) { - return false; - } - - try { - if (!isset($params['ACL'])) { - $mode = decoct($mode); - if ($mode >= 700 and $mode <= 799) { - $params['ACL'] = 'public-read'; - } elseif ($mode >= 600 && $mode <= 699) { - $params['ACL'] = 'authenticated-read'; - } else { - $params['ACL'] = 'private'; - } - } - self::$client->createBucket($params); - return true; - } catch (\Exception $e) { - return $this->triggerError($e->getMessage()); - } - } - - /** - * Remove a bucket from Amazon S3 - * - * @param string $path the directory path - * - * @return bool true if directory was successfully removed - * @link http://www.php.net/manual/en/streamwrapper.rmdir.php - */ - public function rmdir($path) - { - $params = $this->getParams($path); - if (!$params['Bucket']) { - return $this->triggerError('You cannot delete s3://. Please specify a bucket.'); - } elseif ($params['Key']) { - return $this->triggerError('rmdir() only supports bucket deletion'); - } - - try { - self::$client->deleteBucket(array('Bucket' => $params['Bucket'])); - $this->clearStatInfo($path); - return true; - } catch (\Exception $e) { - return $this->triggerError($e->getMessage()); - } - } - - /** - * Support for opendir(). - * - * @param string $path The path to the directory (e.g. "s3://dir[]") - * @param string $options Whether or not to enforce safe_mode (0x04). Unused. - * - * @return bool true on success - * @see http://www.php.net/manual/en/function.opendir.php - */ - public function dir_opendir($path, $options) - { - // Reset the cache - $this->clearStatInfo(); - $params = $this->getParams($path); - $delimiter = $this->getOption('delimiter'); - - if ($delimiter === null) { - $delimiter = '/'; - } - - if ($params['Key']) { - $params['Key'] = rtrim($params['Key'], $delimiter) . $delimiter; - } - - $this->openedBucket = $params['Bucket']; - $this->openedBucketPrefix = $params['Key']; - $operationParams = array('Bucket' => $params['Bucket'], 'Prefix' => $params['Key']); - - if ($delimiter) { - $operationParams['Delimiter'] = $delimiter; - } - - $this->objectIterator = self::$client->getIterator('ListObjects', $operationParams, array( - 'return_prefixes' => true, - 'sort_results' => true - )); - - $this->objectIterator->next(); - - return true; - } - - /** - * Close the directory listing handles - * - * @return bool true on success - */ - public function dir_closedir() - { - $this->objectIterator = null; - - return true; - } - - /** - * This method is called in response to rewinddir() - * - * @return boolean true on success - */ - public function dir_rewinddir() - { - $this->clearStatInfo(); - $this->objectIterator->rewind(); - - return true; - } - - /** - * This method is called in response to readdir() - * - * @return string Should return a string representing the next filename, or false if there is no next file. - * - * @link http://www.php.net/manual/en/function.readdir.php - */ - public function dir_readdir() - { - $result = false; - if ($this->objectIterator->valid()) { - $current = $this->objectIterator->current(); - if (isset($current['Prefix'])) { - // Include "directories". Be sure to strip a trailing "/" on prefixes. - $prefix = rtrim($current['Prefix'], '/'); - $result = str_replace($this->openedBucketPrefix, '', $prefix); - $key = "s3://{$this->openedBucket}/{$prefix}"; - $stat = $this->formatUrlStat($prefix); - } else { - // Remove the prefix from the result to emulate other stream wrappers - $result = str_replace($this->openedBucketPrefix, '', $current['Key']); - $key = "s3://{$this->openedBucket}/{$current['Key']}"; - $stat = $this->formatUrlStat($current); - } - - // Cache the object data for quick url_stat lookups used with RecursiveDirectoryIterator - self::$nextStat = array($key => $stat); - $this->objectIterator->next(); - } - - return $result; - } - - /** - * Called in response to rename() to rename a file or directory. Currently only supports renaming objects. - * - * @param string $path_from the path to the file to rename - * @param string $path_to the new path to the file - * - * @return bool true if file was successfully renamed - * @link http://www.php.net/manual/en/function.rename.php - */ - public function rename($path_from, $path_to) - { - $partsFrom = $this->getParams($path_from); - $partsTo = $this->getParams($path_to); - $this->clearStatInfo($path_from); - $this->clearStatInfo($path_to); - - if (!$partsFrom['Key'] || !$partsTo['Key']) { - return $this->triggerError('The Amazon S3 stream wrapper only supports copying objects'); - } - - try { - // Copy the object and allow overriding default parameters if desired, but by default copy metadata - self::$client->copyObject($this->getOptions() + array( - 'Bucket' => $partsTo['Bucket'], - 'Key' => $partsTo['Key'], - 'CopySource' => '/' . $partsFrom['Bucket'] . '/' . rawurlencode($partsFrom['Key']), - 'MetadataDirective' => 'COPY' - )); - // Delete the original object - self::$client->deleteObject(array( - 'Bucket' => $partsFrom['Bucket'], - 'Key' => $partsFrom['Key'] - ) + $this->getOptions()); - } catch (\Exception $e) { - return $this->triggerError($e->getMessage()); - } - - return true; - } - - /** - * Cast the stream to return the underlying file resource - * - * @param int $cast_as STREAM_CAST_FOR_SELECT or STREAM_CAST_AS_STREAM - * - * @return resource - */ - public function stream_cast($cast_as) - { - return $this->body->getStream(); - } + /** + * Support for mkdir(). + * + * @param string $path Directory which should be created. + * @param int $mode Permissions. 700-range permissions map to ACL_PUBLIC. 600-range permissions map to + * ACL_AUTH_READ. All other permissions map to ACL_PRIVATE. Expects octal form. + * @param int $options A bitwise mask of values, such as STREAM_MKDIR_RECURSIVE. + * + * @return bool + * @link http://www.php.net/manual/en/streamwrapper.mkdir.php + */ + public function mkdir($path, $mode, $options) + { + $params = $this->getParams($path); + if (!$params['Bucket']) { + return false; + } - /** - * Get the stream context options available to the current stream - * - * @return array - */ - protected function getOptions() - { - $context = $this->context ?: stream_context_get_default(); - $options = stream_context_get_options($context); + if (!isset($params['ACL'])) { + $params['ACL'] = $this->determineAcl($mode); + } - return isset($options['s3']) ? $options['s3'] : array(); - } + return !isset($params['Key']) || $params['Key'] === '/' + ? $this->createBucket($path, $params) + : $this->createPseudoDirectory($path, $params); + } + + /** + * Remove a bucket from Amazon S3 + * + * @param string $path the directory path + * @param int $options A bitwise mask of values + * + * @return bool true if directory was successfully removed + * @link http://www.php.net/manual/en/streamwrapper.rmdir.php + */ + public function rmdir($path, $options) + { + $params = $this->getParams($path); + if (!$params['Bucket']) { + return $this->triggerError('You cannot delete s3://. Please specify a bucket.'); + } - /** - * Get a specific stream context option - * - * @param string $name Name of the option to retrieve - * - * @return mixed|null - */ - protected function getOption($name) - { - $options = $this->getOptions(); + try { + + if (!$params['Key']) { + static::$client->deleteBucket(array('Bucket' => $params['Bucket'])); + $this->clearStatInfo($path); + return true; + } + + // Use a key that adds a trailing slash if needed. + $prefix = rtrim($params['Key'], '/') . '/'; + + $result = static::$client->listObjects(array( + 'Bucket' => $params['Bucket'], + 'Prefix' => $prefix, + 'MaxKeys' => 1 + )); + + // Check if the bucket contains keys other than the placeholder + if ($result['Contents']) { + foreach ($result['Contents'] as $key) { + if ($key['Key'] == $prefix) { + continue; + } + return $this->triggerError('Psuedo folder is not empty'); + } + return $this->unlink(rtrim($path, '/') . '/'); + } + + return $result['CommonPrefixes'] + ? $this->triggerError('Pseudo folder contains nested folders') + : true; + + } catch (\Exception $e) { + return $this->triggerError($e->getMessage()); + } + } + + /** + * Support for opendir(). + * + * The opendir() method of the Amazon S3 stream wrapper supports a stream + * context option of "listFilter". listFilter must be a callable that + * accepts an associative array of object data and returns true if the + * object should be yielded when iterating the keys in a bucket. + * + * @param string $path The path to the directory (e.g. "s3://dir[]") + * @param string $options Whether or not to enforce safe_mode (0x04). Unused. + * + * @return bool true on success + * @see http://www.php.net/manual/en/function.opendir.php + */ + public function dir_opendir($path, $options) + { + // Reset the cache + $this->clearStatInfo(); + $params = $this->getParams($path); + $delimiter = $this->getOption('delimiter'); + $filterFn = $this->getOption('listFilter'); + + if ($delimiter === null) { + $delimiter = '/'; + } - return isset($options[$name]) ? $options[$name] : null; - } + if ($params['Key']) { + $params['Key'] = rtrim($params['Key'], $delimiter) . $delimiter; + } - /** - * Get the bucket and key from the passed path (e.g. s3://bucket/key) - * - * @param string $path Path passed to the stream wrapper - * - * @return array Hash of 'Bucket', 'Key', and custom params - */ - protected function getParams($path) - { - $parts = explode('/', substr($path, 5), 2); + $this->openedBucket = $params['Bucket']; + $this->openedBucketPrefix = $params['Key']; + $operationParams = array('Bucket' => $params['Bucket'], 'Prefix' => $params['Key']); - $params = $this->getOptions(); - unset($params['seekable']); - unset($params['throw_exceptions']); + if ($delimiter) { + $operationParams['Delimiter'] = $delimiter; + } - return array( - 'Bucket' => $parts[0], - 'Key' => isset($parts[1]) ? $parts[1] : null - ) + $params; - } + $objectIterator = static::$client->getIterator('ListObjects', $operationParams, array( + 'return_prefixes' => true, + 'sort_results' => true + )); + + // Filter our "/" keys added by the console as directories, and ensure + // that if a filter function is provided that it passes the filter. + $this->objectIterator = new FilterIterator( + $objectIterator, + function ($key) use ($filterFn) { + // Each yielded results can contain a "Key" or "Prefix" + return (!$filterFn || call_user_func($filterFn, $key)) && + (!isset($key['Key']) || substr($key['Key'], -1, 1) !== '/'); + } + ); + + $this->objectIterator->next(); + + return true; + } + + /** + * Close the directory listing handles + * + * @return bool true on success + */ + public function dir_closedir() + { + $this->objectIterator = null; + + return true; + } + + /** + * This method is called in response to rewinddir() + * + * @return boolean true on success + */ + public function dir_rewinddir() + { + $this->clearStatInfo(); + $this->objectIterator->rewind(); + + return true; + } + + /** + * This method is called in response to readdir() + * + * @return string Should return a string representing the next filename, or false if there is no next file. + * + * @link http://www.php.net/manual/en/function.readdir.php + */ + public function dir_readdir() + { + // Skip empty result keys + if (!$this->objectIterator->valid()) { + return false; + } - /** - * Serialize and sign a command, returning a request object - * - * @param CommandInterface $command Command to sign - * - * @return RequestInterface - */ - protected function getSignedRequest($command) - { - $request = $command->prepare(); - $request->dispatch('request.before_send', array('request' => $request)); + $current = $this->objectIterator->current(); + if (isset($current['Prefix'])) { + // Include "directories". Be sure to strip a trailing "/" + // on prefixes. + $prefix = rtrim($current['Prefix'], '/'); + $result = str_replace($this->openedBucketPrefix, '', $prefix); + $key = "s3://{$this->openedBucket}/{$prefix}"; + $stat = $this->formatUrlStat($prefix); + } else { + // Remove the prefix from the result to emulate other + // stream wrappers. + $result = str_replace($this->openedBucketPrefix, '', $current['Key']); + $key = "s3://{$this->openedBucket}/{$current['Key']}"; + $stat = $this->formatUrlStat($current); + } - return $request; - } + // Cache the object data for quick url_stat lookups used with + // RecursiveDirectoryIterator. + static::$nextStat = array($key => $stat); + $this->objectIterator->next(); + + return $result; + } + + /** + * Called in response to rename() to rename a file or directory. Currently only supports renaming objects. + * + * @param string $path_from the path to the file to rename + * @param string $path_to the new path to the file + * + * @return bool true if file was successfully renamed + * @link http://www.php.net/manual/en/function.rename.php + */ + public function rename($path_from, $path_to) + { + $partsFrom = $this->getParams($path_from); + $partsTo = $this->getParams($path_to); + $this->clearStatInfo($path_from); + $this->clearStatInfo($path_to); + + if (!$partsFrom['Key'] || !$partsTo['Key']) { + return $this->triggerError('The Amazon S3 stream wrapper only supports copying objects'); + } - /** - * Initialize the stream wrapper for a read only stream - * - * @param array $params Operation parameters - * @param array $errors Any encountered errors to append to - * - * @return bool - */ - protected function openReadStream(array $params, array &$errors) - { - // Create the command and serialize the request - $request = $this->getSignedRequest(self::$client->getCommand('GetObject', $params)); - // Create a stream that uses the EntityBody object - $factory = $this->getOption('stream_factory') ?: new PhpStreamRequestFactory(); - $this->body = $factory->fromRequest($request, array(), array('stream_class' => 'Guzzle\Http\EntityBody')); - - // Wrap the body in a caching entity body if seeking is allowed - if ($this->getOption('seekable')) { - $this->body = new CachingEntityBody($this->body); - } + try { + // Copy the object and allow overriding default parameters if desired, but by default copy metadata + static::$client->copyObject($this->getOptions() + array( + 'Bucket' => $partsTo['Bucket'], + 'Key' => $partsTo['Key'], + 'CopySource' => '/' . $partsFrom['Bucket'] . '/' . rawurlencode($partsFrom['Key']), + 'MetadataDirective' => 'COPY' + )); + // Delete the original object + static::$client->deleteObject(array( + 'Bucket' => $partsFrom['Bucket'], + 'Key' => $partsFrom['Key'] + ) + $this->getOptions()); + } catch (\Exception $e) { + return $this->triggerError($e->getMessage()); + } - return true; - } + return true; + } + + /** + * Cast the stream to return the underlying file resource + * + * @param int $cast_as STREAM_CAST_FOR_SELECT or STREAM_CAST_AS_STREAM + * + * @return resource + */ + public function stream_cast($cast_as) + { + return $this->body->getStream(); + } + + /** + * Get the stream context options available to the current stream + * + * @return array + */ + protected function getOptions() + { + $context = $this->context ?: stream_context_get_default(); + $options = stream_context_get_options($context); + + return isset($options['s3']) ? $options['s3'] : array(); + } + + /** + * Get a specific stream context option + * + * @param string $name Name of the option to retrieve + * + * @return mixed|null + */ + protected function getOption($name) + { + $options = $this->getOptions(); + + return isset($options[$name]) ? $options[$name] : null; + } + + /** + * Get the bucket and key from the passed path (e.g. s3://bucket/key) + * + * @param string $path Path passed to the stream wrapper + * + * @return array Hash of 'Bucket', 'Key', and custom params + */ + protected function getParams($path) + { + $parts = explode('/', substr($path, 5), 2); + + $params = $this->getOptions(); + unset($params['seekable']); + + return array( + 'Bucket' => $parts[0], + 'Key' => isset($parts[1]) ? $parts[1] : null + ) + $params; + } + + /** + * Serialize and sign a command, returning a request object + * + * @param CommandInterface $command Command to sign + * + * @return RequestInterface + */ + protected function getSignedRequest($command) + { + $request = $command->prepare(); + $request->dispatch('request.before_send', array('request' => $request)); + + return $request; + } + + /** + * Initialize the stream wrapper for a read only stream + * + * @param array $params Operation parameters + * @param array $errors Any encountered errors to append to + * + * @return bool + */ + protected function openReadStream(array $params, array &$errors) + { + // Create the command and serialize the request + $request = $this->getSignedRequest(static::$client->getCommand('GetObject', $params)); + // Create a stream that uses the EntityBody object + $factory = $this->getOption('stream_factory') ?: new PhpStreamRequestFactory(); + $this->body = $factory->fromRequest($request, array(), array('stream_class' => 'Guzzle\Http\EntityBody')); + + // Wrap the body in a caching entity body if seeking is allowed + if ($this->getOption('seekable')) { + $this->body = new CachingEntityBody($this->body); + } - /** - * Initialize the stream wrapper for a write only stream - * - * @param array $params Operation parameters - * @param array $errors Any encountered errors to append to - * - * @return bool - */ - protected function openWriteStream(array $params, array &$errors) - { - $this->body = new EntityBody(fopen('php://temp', 'r+')); - } + return true; + } + + /** + * Initialize the stream wrapper for a write only stream + * + * @param array $params Operation parameters + * @param array $errors Any encountered errors to append to + * + * @return bool + */ + protected function openWriteStream(array $params, array &$errors) + { + $this->body = new EntityBody(fopen('php://temp', 'r+')); + } + + /** + * Initialize the stream wrapper for an append stream + * + * @param array $params Operation parameters + * @param array $errors Any encountered errors to append to + * + * @return bool + */ + protected function openAppendStream(array $params, array &$errors) + { + try { + // Get the body of the object + $this->body = static::$client->getObject($params)->get('Body'); + $this->body->seek(0, SEEK_END); + } catch (S3Exception $e) { + // The object does not exist, so use a simple write stream + $this->openWriteStream($params, $errors); + } - /** - * Initialize the stream wrapper for an append stream - * - * @param array $params Operation parameters - * @param array $errors Any encountered errors to append to - * - * @return bool - */ - protected function openAppendStream(array $params, array &$errors) - { - try { - // Get the body of the object - $this->body = self::$client->getObject($params)->get('Body'); - $this->body->seek(0, SEEK_END); - } catch (S3Exception $e) { - // The object does not exist, so use a simple write stream - $this->openWriteStream($params, $errors); - } + return true; + } + + /** + * Trigger one or more errors + * + * @param string|array $errors Errors to trigger + * @param mixed $flags If set to STREAM_URL_STAT_QUIET, then no error or exception occurs + * + * @return bool Returns false + * @throws RuntimeException if throw_errors is true + */ + protected function triggerError($errors, $flags = null) + { + if ($flags & STREAM_URL_STAT_QUIET) { + // This is triggered with things like file_exists() + + if ($flags & STREAM_URL_STAT_LINK) { + // This is triggered for things like is_link() + return $this->formatUrlStat(false); + } + return false; + } - return true; - } + // This is triggered when doing things like lstat() or stat() + trigger_error(implode("\n", (array) $errors), E_USER_WARNING); + + return false; + } + + /** + * Prepare a url_stat result array + * + * @param string|array $result Data to add + * + * @return array Returns the modified url_stat result + */ + protected function formatUrlStat($result = null) + { + static $statTemplate = array( + 0 => 0, 'dev' => 0, + 1 => 0, 'ino' => 0, + 2 => 0, 'mode' => 0, + 3 => 0, 'nlink' => 0, + 4 => 0, 'uid' => 0, + 5 => 0, 'gid' => 0, + 6 => -1, 'rdev' => -1, + 7 => 0, 'size' => 0, + 8 => 0, 'atime' => 0, + 9 => 0, 'mtime' => 0, + 10 => 0, 'ctime' => 0, + 11 => -1, 'blksize' => -1, + 12 => -1, 'blocks' => -1, + ); + + $stat = $statTemplate; + $type = gettype($result); + + // Determine what type of data is being cached + if ($type == 'NULL' || $type == 'string') { + // Directory with 0777 access - see "man 2 stat". + $stat['mode'] = $stat[2] = 0040777; + } elseif ($type == 'array' && isset($result['LastModified'])) { + // ListObjects or HeadObject result + $stat['mtime'] = $stat[9] = $stat['ctime'] = $stat[10] = strtotime($result['LastModified']); + $stat['size'] = $stat[7] = (isset($result['ContentLength']) ? $result['ContentLength'] : $result['Size']); + // Regular file with 0777 access - see "man 2 stat". + $stat['mode'] = $stat[2] = 0100777; + } - /** - * Trigger one or more errors - * - * @param string|array $errors Errors to trigger - * @param mixed $flags If set to STREAM_URL_STAT_QUIET, then no error or exception occurs - * - * @return bool Returns false - * @throws RuntimeException if throw_errors is true - */ - protected function triggerError($errors, $flags = null) - { - if ($flags != STREAM_URL_STAT_QUIET) { - if ($this->getOption('throw_exceptions')) { - throw new RuntimeException(implode("\n", (array) $errors)); - } else { - trigger_error(implode("\n", (array) $errors), E_USER_WARNING); - } - } + return $stat; + } + + /** + * Clear the next stat result from the cache + * + * @param string $path If a path is specific, clearstatcache() will be called + */ + protected function clearStatInfo($path = null) + { + static::$nextStat = array(); + if ($path) { + clearstatcache(true, $path); + } + } + + /** + * Creates a bucket for the given parameters. + * + * @param string $path Stream wrapper path + * @param array $params A result of StreamWrapper::getParams() + * + * @return bool Returns true on success or false on failure + */ + private function createBucket($path, array $params) + { + if (static::$client->doesBucketExist($params['Bucket'])) { + return $this->triggerError("Directory already exists: {$path}"); + } - return false; - } + try { + static::$client->createBucket($params); + $this->clearStatInfo($path); + return true; + } catch (\Exception $e) { + return $this->triggerError($e->getMessage()); + } + } + + /** + * Creates a pseudo-folder by creating an empty "/" suffixed key + * + * @param string $path Stream wrapper path + * @param array $params A result of StreamWrapper::getParams() + * + * @return bool + */ + private function createPseudoDirectory($path, array $params) + { + // Ensure the path ends in "/" and the body is empty. + $params['Key'] = rtrim($params['Key'], '/') . '/'; + $params['Body'] = ''; + + // Fail if this pseudo directory key already exists + if (static::$client->doesObjectExist($params['Bucket'], $params['Key'])) { + return $this->triggerError("Directory already exists: {$path}"); + } - /** - * Prepare a url_stat result array - * - * @param string|array $result Data to add - * - * @return array Returns the modified url_stat result - */ - protected function formatUrlStat($result = null) - { - static $statTemplate = array( - 0 => 0, 'dev' => 0, - 1 => 0, 'ino' => 0, - 2 => 0, 'mode' => 0, - 3 => 0, 'nlink' => 0, - 4 => 0, 'uid' => 0, - 5 => 0, 'gid' => 0, - 6 => -1, 'rdev' => -1, - 7 => 0, 'size' => 0, - 8 => 0, 'atime' => 0, - 9 => 0, 'mtime' => 0, - 10 => 0, 'ctime' => 0, - 11 => -1, 'blksize' => -1, - 12 => -1, 'blocks' => -1, - ); - - $stat = $statTemplate; - - // Determine what type of data is being cached - if (!$result || is_string($result)) { - // Directory with 0777 access - see "man 2 stat". - $stat['mode'] = $stat[2] = 0040777; - } elseif (is_array($result) && isset($result['LastModified'])) { - // ListObjects or HeadObject result - $stat['mtime'] = $stat[9] = $stat['ctime'] = $stat[10] = strtotime($result['LastModified']); - $stat['size'] = $stat[7] = (isset($result['ContentLength']) ? $result['ContentLength'] : $result['Size']); - // Regular file with 0777 access - see "man 2 stat". - $stat['mode'] = $stat[2] = 0100777; - } else { - $stat['mode'] = $stat[2] = 0100777; - } + try { + static::$client->putObject($params); + $this->clearStatInfo($path); + return true; + } catch (\Exception $e) { + return $this->triggerError($e->getMessage()); + } + } + + /** + * Determine the most appropriate ACL based on a file mode. + * + * @param int $mode File mode + * + * @return string + */ + private function determineAcl($mode) + { + $mode = decoct($mode); + + if ($mode >= 700 && $mode <= 799) { + return 'public-read'; + } - return $stat; - } + if ($mode >= 600 && $mode <= 699) { + return 'authenticated-read'; + } - /** - * Clear the next stat result from the cache - * - * @param string $path If a path is specific, clearstatcache() will be called - */ - protected function clearStatInfo($path = null) - { - self::$nextStat = array(); - if ($path) { - clearstatcache(true, $path); - } - } + return 'private'; + } } diff --git a/inc/aws-sdk/Aws/S3/Sync/AbstractSyncBuilder.php b/inc/aws-sdk/Aws/S3/Sync/AbstractSyncBuilder.php index 1863e78..1308c3d 100755 --- a/inc/aws-sdk/Aws/S3/Sync/AbstractSyncBuilder.php +++ b/inc/aws-sdk/Aws/S3/Sync/AbstractSyncBuilder.php @@ -18,7 +18,6 @@ namespace Aws\S3\Sync; use Aws\Common\Exception\RuntimeException; use Aws\Common\Exception\UnexpectedValueException; -use Aws\Common\Model\MultipartUpload\TransferInterface; use Aws\S3\S3Client; use Aws\S3\Iterator\OpendirIterator; use Guzzle\Common\Event; @@ -65,7 +64,7 @@ abstract class AbstractSyncBuilder protected $debug; /** - * @return self + * @return static */ public static function getInstance() { @@ -77,7 +76,7 @@ abstract class AbstractSyncBuilder * * @param string $bucket Amazon S3 bucket name * - * @return self + * @return $this */ public function setBucket($bucket) { @@ -91,7 +90,7 @@ abstract class AbstractSyncBuilder * * @param S3Client $client Amazon S3 client * - * @return self + * @return $this */ public function setClient(S3Client $client) { @@ -105,7 +104,7 @@ abstract class AbstractSyncBuilder * * @param \Iterator $iterator * - * @return self + * @return $this */ public function setSourceIterator(\Iterator $iterator) { @@ -119,7 +118,7 @@ abstract class AbstractSyncBuilder * * @param FileNameConverterInterface $converter Filename to object key provider * - * @return self + * @return $this */ public function setSourceFilenameConverter(FilenameConverterInterface $converter) { @@ -133,7 +132,7 @@ abstract class AbstractSyncBuilder * * @param FileNameConverterInterface $converter Filename to object key provider * - * @return self + * @return $this */ public function setTargetFilenameConverter(FilenameConverterInterface $converter) { @@ -148,7 +147,7 @@ abstract class AbstractSyncBuilder * * @param string $baseDir Base directory, which will be deleted from each uploaded object key * - * @return self + * @return $this */ public function setBaseDir($baseDir) { @@ -164,7 +163,7 @@ abstract class AbstractSyncBuilder * * @param string $keyPrefix Prefix for each uploaded key * - * @return self + * @return $this */ public function setKeyPrefix($keyPrefix) { @@ -179,7 +178,7 @@ abstract class AbstractSyncBuilder * * @param string $delimiter Delimiter to use to separate paths * - * @return self + * @return $this */ public function setDelimiter($delimiter) { @@ -193,7 +192,7 @@ abstract class AbstractSyncBuilder * * @param array $params Associative array of PutObject (upload) GetObject (download) parameters * - * @return self + * @return $this */ public function setOperationParams(array $params) { @@ -207,7 +206,7 @@ abstract class AbstractSyncBuilder * * @param int $concurrency Number of concurrent transfers * - * @return self + * @return $this */ public function setConcurrency($concurrency) { @@ -221,7 +220,7 @@ abstract class AbstractSyncBuilder * * @param bool $force Set to true to force transfers without checking if it has changed * - * @return self + * @return $this */ public function force($force = false) { @@ -235,7 +234,7 @@ abstract class AbstractSyncBuilder * * @param bool|resource $enabledOrResource Set to true or false to enable or disable debug output. Pass an opened * fopen resource to write to instead of writing to standard out. - * @return self + * @return $this */ public function enableDebugOutput($enabledOrResource = true) { @@ -249,7 +248,7 @@ abstract class AbstractSyncBuilder * * @param string $search Regular expression search (in preg_match format). Any filename that matches this regex * will not be transferred. - * @return self + * @return $this */ public function addRegexFilter($search) { @@ -301,7 +300,7 @@ abstract class AbstractSyncBuilder /** * Hook to implement in subclasses * - * @return self + * @return AbstractSync */ abstract protected function specificBuild(); @@ -392,11 +391,6 @@ abstract class AbstractSyncBuilder function (Event $e) use ($params) { if ($e['command'] instanceof CommandInterface) { $e['command']->overwriteWith($params); - } elseif ($e['command'] instanceof TransferInterface) { - // Multipart upload transfer object - foreach ($params as $k => $v) { - $e['command']->setOption($k, $v); - } } } ); @@ -419,7 +413,16 @@ abstract class AbstractSyncBuilder } // Use opendir so that we can pass stream context to the iterator - $dh = opendir($dir, stream_context_create(array('s3' => array('delimiter' => '')))); + $dh = opendir($dir, stream_context_create(array( + 's3' => array( + 'delimiter' => '', + 'listFilter' => function ($obj) { + // Ensure that we do not try to download a glacier object. + return !isset($obj['StorageClass']) || + $obj['StorageClass'] != 'GLACIER'; + } + ) + ))); // Add the trailing slash for the OpendirIterator concatenation if (!$this->keyPrefix) { diff --git a/inc/aws-sdk/Aws/S3/Sync/ChangedFilesIterator.php b/inc/aws-sdk/Aws/S3/Sync/ChangedFilesIterator.php index 273ae47..dc3e07c 100755 --- a/inc/aws-sdk/Aws/S3/Sync/ChangedFilesIterator.php +++ b/inc/aws-sdk/Aws/S3/Sync/ChangedFilesIterator.php @@ -58,7 +58,8 @@ class ChangedFilesIterator extends \FilterIterator public function accept() { $current = $this->current(); - $key = $this->sourceConverter->convert((string) $current); + $key = $this->sourceConverter->convert($this->normalize($current)); + if (!($data = $this->getTargetData($key))) { return true; } @@ -86,6 +87,8 @@ class ChangedFilesIterator extends \FilterIterator */ protected function getTargetData($key) { + $key = $this->cleanKey($key); + if (isset($this->cache[$key])) { $result = $this->cache[$key]; unset($this->cache[$key]); @@ -97,14 +100,31 @@ class ChangedFilesIterator extends \FilterIterator while ($it->valid()) { $value = $it->current(); $data = array($value->getSize(), $value->getMTime()); - $filename = $this->targetConverter->convert((string) $value); + $filename = $this->targetConverter->convert($this->normalize($value)); + $filename = $this->cleanKey($filename); + if ($filename == $key) { return $data; } + $this->cache[$filename] = $data; $it->next(); } return false; } + + private function normalize($current) + { + $asString = (string) $current; + + return strpos($asString, 's3://') === 0 + ? $asString + : $current->getRealPath(); + } + + private function cleanKey($key) + { + return ltrim($key, '/'); + } } diff --git a/inc/aws-sdk/Aws/S3/Sync/DownloadSync.php b/inc/aws-sdk/Aws/S3/Sync/DownloadSync.php index cdbf89d..560ccdf 100755 --- a/inc/aws-sdk/Aws/S3/Sync/DownloadSync.php +++ b/inc/aws-sdk/Aws/S3/Sync/DownloadSync.php @@ -28,8 +28,7 @@ class DownloadSync extends AbstractSync { $sourceFilename = $file->getPathname(); list($bucket, $key) = explode('/', substr($sourceFilename, 5), 2); - $filename = '/' . ltrim($this->options['source_converter']->convert($sourceFilename), '/'); - + $filename = $this->options['source_converter']->convert($sourceFilename); $this->createDirectory($filename); // Some S3 buckets contains nested files under the same name as a directory diff --git a/inc/aws-sdk/Aws/S3/Sync/DownloadSyncBuilder.php b/inc/aws-sdk/Aws/S3/Sync/DownloadSyncBuilder.php index b0a1e8c..d9cd044 100755 --- a/inc/aws-sdk/Aws/S3/Sync/DownloadSyncBuilder.php +++ b/inc/aws-sdk/Aws/S3/Sync/DownloadSyncBuilder.php @@ -38,7 +38,7 @@ class DownloadSyncBuilder extends AbstractSyncBuilder * * @param string $directory Directory * - * @return self + * @return $this */ public function setDirectory($directory) { diff --git a/inc/aws-sdk/Aws/S3/Sync/KeyConverter.php b/inc/aws-sdk/Aws/S3/Sync/KeyConverter.php index 27087ce..7cfee06 100755 --- a/inc/aws-sdk/Aws/S3/Sync/KeyConverter.php +++ b/inc/aws-sdk/Aws/S3/Sync/KeyConverter.php @@ -37,20 +37,31 @@ class KeyConverter implements FilenameConverterInterface */ public function __construct($baseDir = '', $prefix = '', $delimiter = '/') { - $this->baseDir = $baseDir; + $this->baseDir = (string) $baseDir; $this->prefix = $prefix; $this->delimiter = $delimiter; } public function convert($filename) { - // Remove base directory from the key - $key = str_replace($this->baseDir, '', $filename); + $key = $filename; + + // Remove base directory from the key (only the first occurrence) + if ($this->baseDir && (false !== $pos = strpos($filename, $this->baseDir))) { + $key = substr_replace($key, '', $pos, strlen($this->baseDir)); + } + // Replace Windows directory separators to become Unix style, and convert that to the custom dir separator $key = str_replace('/', $this->delimiter, str_replace('\\', '/', $key)); - // Add the key prefix and remove double slashes - $key = str_replace($this->delimiter . $this->delimiter, $this->delimiter, $this->prefix . $key); - return ltrim($key, $this->delimiter); + // Add the key prefix and remove double slashes that are not in the protocol (e.g. prefixed with ":") + $delim = preg_quote($this->delimiter); + $key = preg_replace( + "#(?delimiter, + $this->prefix . $key + ); + + return $key; } } diff --git a/inc/aws-sdk/Aws/S3/Sync/UploadSync.php b/inc/aws-sdk/Aws/S3/Sync/UploadSync.php index f7d4789..31b81e6 100755 --- a/inc/aws-sdk/Aws/S3/Sync/UploadSync.php +++ b/inc/aws-sdk/Aws/S3/Sync/UploadSync.php @@ -26,6 +26,8 @@ use Guzzle\Http\EntityBody; */ class UploadSync extends AbstractSync { + const BEFORE_MULTIPART_BUILD = 's3.sync.before_multipart_build'; + protected function init() { if (null == $this->options['multipart_upload_size']) { @@ -36,10 +38,11 @@ class UploadSync extends AbstractSync protected function createTransferAction(\SplFileInfo $file) { // Open the file for reading - $filename = $file->getPathName(); + $filename = $file->getRealPath() ?: $file->getPathName(); + if (!($resource = fopen($filename, 'r'))) { // @codeCoverageIgnoreStart - throw new RuntimeException("Could not open {$filename} for reading"); + throw new RuntimeException('Could not open ' . $file->getPathname() . ' for reading'); // @codeCoverageIgnoreEnd } @@ -56,15 +59,21 @@ class UploadSync extends AbstractSync // Use a multi-part upload if the file is larger than the cutoff size and is a regular file if ($body->getWrapper() == 'plainfile' && $file->getSize() >= $this->options['multipart_upload_size']) { - return UploadBuilder::newInstance() + $builder = UploadBuilder::newInstance() ->setBucket($this->options['bucket']) ->setKey($key) ->setMinPartSize($this->options['multipart_upload_size']) ->setOption($aclType, $acl) ->setClient($this->options['client']) ->setSource($body) - ->setConcurrency($this->options['concurrency']) - ->build(); + ->setConcurrency($this->options['concurrency']); + + $this->dispatch( + self::BEFORE_MULTIPART_BUILD, + array('builder' => $builder, 'file' => $file) + ); + + return $builder->build(); } return $this->options['client']->getCommand('PutObject', array( diff --git a/inc/aws-sdk/Aws/S3/Sync/UploadSyncBuilder.php b/inc/aws-sdk/Aws/S3/Sync/UploadSyncBuilder.php index 8e25d8e..8f7907c 100755 --- a/inc/aws-sdk/Aws/S3/Sync/UploadSyncBuilder.php +++ b/inc/aws-sdk/Aws/S3/Sync/UploadSyncBuilder.php @@ -16,9 +16,10 @@ namespace Aws\S3\Sync; -use \FilesystemIterator as FI; +use FilesystemIterator as FI; use Aws\Common\Model\MultipartUpload\AbstractTransfer; use Aws\S3\Model\Acp; +use Guzzle\Common\HasDispatcherInterface; use Guzzle\Common\Event; use Guzzle\Service\Command\CommandInterface; @@ -35,11 +36,11 @@ class UploadSyncBuilder extends AbstractSyncBuilder * * @param string $path Path that contains files to upload * - * @return self + * @return $this */ public function uploadFromDirectory($path) { - $this->baseDir = $path; + $this->baseDir = realpath($path); $this->sourceIterator = $this->filterIterator(new \RecursiveIteratorIterator(new \RecursiveDirectoryIterator( $path, FI::SKIP_DOTS | FI::UNIX_PATHS | FI::FOLLOW_SYMLINKS @@ -53,7 +54,7 @@ class UploadSyncBuilder extends AbstractSyncBuilder * * @param string $glob Glob expression * - * @return self + * @return $this * @link http://www.php.net/manual/en/function.glob.php */ public function uploadFromGlob($glob) @@ -70,7 +71,7 @@ class UploadSyncBuilder extends AbstractSyncBuilder * * @param string $acl Canned ACL for each upload * - * @return self + * @return $this */ public function setAcl($acl) { @@ -84,7 +85,7 @@ class UploadSyncBuilder extends AbstractSyncBuilder * * @param Acp $acp Access control policy * - * @return self + * @return $this */ public function setAcp(Acp $acp) { @@ -99,7 +100,7 @@ class UploadSyncBuilder extends AbstractSyncBuilder * * @param int $size Size threshold * - * @return self + * @return $this */ public function setMultipartUploadSize($size) { @@ -124,6 +125,21 @@ class UploadSyncBuilder extends AbstractSyncBuilder return $sync; } + protected function addCustomParamListener(HasDispatcherInterface $sync) + { + // Handle the special multi-part upload event + parent::addCustomParamListener($sync); + $params = $this->params; + $sync->getEventDispatcher()->addListener( + UploadSync::BEFORE_MULTIPART_BUILD, + function (Event $e) use ($params) { + foreach ($params as $k => $v) { + $e['builder']->setOption($k, $v); + } + } + ); + } + protected function getTargetIterator() { return $this->createS3Iterator(); diff --git a/inc/aws-sdk/Aws/Ses/Resources/ses-2010-12-01.php b/inc/aws-sdk/Aws/Ses/Resources/ses-2010-12-01.php index fe006d0..cac3cd8 100755 --- a/inc/aws-sdk/Aws/Ses/Resources/ses-2010-12-01.php +++ b/inc/aws-sdk/Aws/Ses/Resources/ses-2010-12-01.php @@ -29,6 +29,16 @@ return array ( 'https' => true, 'hostname' => 'email.us-east-1.amazonaws.com', ), + 'us-west-2' => array( + 'http' => false, + 'https' => true, + 'hostname' => 'email.us-west-2.amazonaws.com', + ), + 'eu-west-1' => array( + 'http' => false, + 'https' => true, + 'hostname' => 'email.eu-west-1.amazonaws.com', + ), ), 'operations' => array( 'DeleteIdentity' => array( @@ -225,10 +235,6 @@ return array ( 'IdentityType' => array( 'type' => 'string', 'location' => 'aws.query', - 'enum' => array( - 'EmailAddress', - 'Domain', - ), ), 'NextToken' => array( 'type' => 'string', @@ -519,10 +525,6 @@ return array ( 'required' => true, 'type' => 'string', 'location' => 'aws.query', - 'enum' => array( - 'Bounce', - 'Complaint', - ), ), 'SnsTopic' => array( 'type' => 'string', @@ -721,6 +723,9 @@ return array ( 'ComplaintTopic' => array( 'type' => 'string', ), + 'DeliveryTopic' => array( + 'type' => 'string', + ), 'ForwardingEnabled' => array( 'type' => 'boolean', ), @@ -907,16 +912,14 @@ return array ( ), ), 'iterators' => array( - 'operations' => array( - 'ListIdentities' => array( - 'token_param' => 'NextToken', - 'token_key' => 'NextToken', - 'limit_key' => 'MaxItems', - 'result_key' => 'Identities', - ), - 'ListVerifiedEmailAddresses' => array( - 'result_key' => 'VerifiedEmailAddresses', - ), + 'ListIdentities' => array( + 'input_token' => 'NextToken', + 'output_token' => 'NextToken', + 'limit_key' => 'MaxItems', + 'result_key' => 'Identities', + ), + 'ListVerifiedEmailAddresses' => array( + 'result_key' => 'VerifiedEmailAddresses', ), ), 'waiters' => array( diff --git a/inc/aws-sdk/Aws/Ses/SesClient.php b/inc/aws-sdk/Aws/Ses/SesClient.php index 1f751b5..3dd9a79 100755 --- a/inc/aws-sdk/Aws/Ses/SesClient.php +++ b/inc/aws-sdk/Aws/Ses/SesClient.php @@ -44,12 +44,12 @@ use Guzzle\Service\Resource\ResourceIteratorInterface; * @method Model verifyDomainIdentity(array $args = array()) {@command Ses VerifyDomainIdentity} * @method Model verifyEmailAddress(array $args = array()) {@command Ses VerifyEmailAddress} * @method Model verifyEmailIdentity(array $args = array()) {@command Ses VerifyEmailIdentity} - * @method waitUntilIdentityExists(array $input) Wait using the IdentityExists waiter. The input array uses the parameters of the GetIdentityVerificationAttributes operation and waiter specific settings + * @method waitUntilIdentityExists(array $input) The input array uses the parameters of the GetIdentityVerificationAttributes operation and waiter specific settings * @method ResourceIteratorInterface getListIdentitiesIterator(array $args = array()) The input array uses the parameters of the ListIdentities operation * @method ResourceIteratorInterface getListVerifiedEmailAddressesIterator(array $args = array()) The input array uses the parameters of the ListVerifiedEmailAddresses operation * - * @link http://docs.aws.amazon.com/aws-sdk-php/guide/latest/service-ses.html User guide - * @link http://docs.aws.amazon.com/aws-sdk-php/latest/class-Aws.Ses.SesClient.html API docs + * @link http://docs.aws.amazon.com/aws-sdk-php/v2/guide/service-ses.html User guide + * @link http://docs.aws.amazon.com/aws-sdk-php/v2/api/class-Aws.Ses.SesClient.html API docs */ class SesClient extends AbstractClient { @@ -61,7 +61,7 @@ class SesClient extends AbstractClient * @param array|Collection $config Client configuration data * * @return self - * @see \Aws\Common\Client\DefaultClient for a list of available configuration options + * @link http://docs.aws.amazon.com/aws-sdk-php/v2/guide/configuration.html#client-configuration-options */ public static function factory($config = array()) { diff --git a/inc/aws-sdk/Aws/SimpleDb/Resources/simpledb-2009-04-15.php b/inc/aws-sdk/Aws/SimpleDb/Resources/simpledb-2009-04-15.php index 1ffd7d8..bdf2ea9 100755 --- a/inc/aws-sdk/Aws/SimpleDb/Resources/simpledb-2009-04-15.php +++ b/inc/aws-sdk/Aws/SimpleDb/Resources/simpledb-2009-04-15.php @@ -53,6 +53,11 @@ return array ( 'https' => true, 'hostname' => 'sdb.ap-southeast-1.amazonaws.com', ), + 'ap-southeast-2' => array( + 'http' => true, + 'https' => true, + 'hostname' => 'sdb.ap-southeast-2.amazonaws.com', + ), 'sa-east-1' => array( 'http' => true, 'https' => true, @@ -111,7 +116,6 @@ return array ( 'type' => 'string', ), 'Value' => array( - 'required' => true, 'type' => 'string', ), 'AlternateValueEncoding' => array( @@ -308,7 +312,6 @@ return array ( 'type' => 'string', ), 'Value' => array( - 'required' => true, 'type' => 'string', ), 'AlternateValueEncoding' => array( @@ -835,4 +838,17 @@ return array ( ), ), ), + 'iterators' => array( + 'ListDomains' => array( + 'input_token' => 'NextToken', + 'output_token' => 'NextToken', + 'limit_key' => 'MaxNumberOfDomains', + 'result_key' => 'DomainNames', + ), + 'Select' => array( + 'input_token' => 'NextToken', + 'output_token' => 'NextToken', + 'result_key' => 'Items', + ), + ), ); diff --git a/inc/aws-sdk/Aws/SimpleDb/SimpleDbClient.php b/inc/aws-sdk/Aws/SimpleDb/SimpleDbClient.php index 353f5d0..e1701d5 100755 --- a/inc/aws-sdk/Aws/SimpleDb/SimpleDbClient.php +++ b/inc/aws-sdk/Aws/SimpleDb/SimpleDbClient.php @@ -39,8 +39,8 @@ use Guzzle\Service\Resource\ResourceIteratorInterface; * @method ResourceIteratorInterface getListDomainsIterator(array $args = array()) The input array uses the parameters of the ListDomains operation * @method ResourceIteratorInterface getSelectIterator(array $args = array()) The input array uses the parameters of the Select operation * - * @link http://docs.aws.amazon.com/aws-sdk-php/guide/latest/service-simpledb.html User guide - * @link http://docs.aws.amazon.com/aws-sdk-php/latest/class-Aws.SimpleDb.SimpleDbClient.html API docs + * @link http://docs.aws.amazon.com/aws-sdk-php/v2/guide/service-simpledb.html User guide + * @link http://docs.aws.amazon.com/aws-sdk-php/v2/api/class-Aws.SimpleDb.SimpleDbClient.html API docs */ class SimpleDbClient extends AbstractClient { @@ -52,7 +52,7 @@ class SimpleDbClient extends AbstractClient * @param array|Collection $config Client configuration data * * @return self - * @see \Aws\Common\Client\DefaultClient for a list of available configuration options + * @link http://docs.aws.amazon.com/aws-sdk-php/v2/guide/configuration.html#client-configuration-options */ public static function factory($config = array()) { @@ -62,19 +62,6 @@ class SimpleDbClient extends AbstractClient Options::VERSION => self::LATEST_API_VERSION, Options::SERVICE_DESCRIPTION => __DIR__ . '/Resources/simpledb-%s.php' )) - ->setIteratorsConfig(array( - 'token_key' => 'NextToken', - 'token_param' => 'NextToken', - 'operations' => array( - 'ListDomains' => array( - 'result_key' => 'DomainNames', - 'limit_key' => 'MaxNumberOfDomains' - ), - 'Select' => array( - 'result_key' => 'Items' - ) - ) - )) ->build(); } } diff --git a/inc/aws-sdk/Aws/Sns/MessageValidator/MessageValidator.php b/inc/aws-sdk/Aws/Sns/MessageValidator/MessageValidator.php index 3db051e..113453e 100755 --- a/inc/aws-sdk/Aws/Sns/MessageValidator/MessageValidator.php +++ b/inc/aws-sdk/Aws/Sns/MessageValidator/MessageValidator.php @@ -64,9 +64,7 @@ class MessageValidator { // Get the cert's URL and ensure it is from AWS $certUrl = Url::factory($message->get('SigningCertURL')); - if ('.amazonaws.com' != substr($certUrl->getHost(), -14)) { - throw new CertificateFromUnrecognizedSourceException(); - } + $this->validateUrl($certUrl); // Get the cert itself and extract the public key $certificate = $this->client->get((string) $certUrl)->send()->getBody(); @@ -83,6 +81,19 @@ class MessageValidator } } + private function validateUrl(Url $url) + { + // The host must match the following pattern + $hostPattern = '/^sns\.[a-zA-Z0-9\-]{3,}\.amazonaws\.com(\.cn)?$/'; + + if ($url->getScheme() !== 'https' || + substr($url, -4) !== '.pem' || + !preg_match($hostPattern, $url->getHost()) + ) { + throw new CertificateFromUnrecognizedSourceException(); + } + } + /** * Determines if a message is valid and that is was delivered by AWS. This method does not throw exceptions and * returns a simple boolean value. diff --git a/inc/aws-sdk/Aws/Sns/Resources/sns-2010-03-31.php b/inc/aws-sdk/Aws/Sns/Resources/sns-2010-03-31.php index ed6b692..d781bd4 100755 --- a/inc/aws-sdk/Aws/Sns/Resources/sns-2010-03-31.php +++ b/inc/aws-sdk/Aws/Sns/Resources/sns-2010-03-31.php @@ -64,6 +64,11 @@ return array ( 'https' => true, 'hostname' => 'sns.sa-east-1.amazonaws.com', ), + 'cn-north-1' => array( + 'http' => true, + 'https' => true, + 'hostname' => 'sns.cn-north-1.amazonaws.com.cn', + ), 'us-gov-west-1' => array( 'http' => true, 'https' => true, @@ -879,12 +884,43 @@ return array ( 'type' => 'string', 'location' => 'aws.query', ), + 'MessageAttributes' => array( + 'type' => 'object', + 'location' => 'aws.query', + 'sentAs' => 'MessageAttributes.entry', + 'data' => array( + 'keyName' => 'Name', + 'valueName' => 'Value', + ), + 'additionalProperties' => array( + 'type' => 'object', + 'data' => array( + 'shape_name' => 'String', + ), + 'properties' => array( + 'DataType' => array( + 'required' => true, + 'type' => 'string', + ), + 'StringValue' => array( + 'type' => 'string', + ), + 'BinaryValue' => array( + 'type' => 'string', + ), + ), + ), + ), ), 'errorResponses' => array( array( 'reason' => 'Indicates that a request parameter does not comply with the associated constraints.', 'class' => 'InvalidParameterException', ), + array( + 'reason' => 'Indicates that a request parameter does not comply with the associated constraints.', + 'class' => 'InvalidParameterValueException', + ), array( 'reason' => 'Indicates an internal service error.', 'class' => 'InternalErrorException', @@ -1675,32 +1711,30 @@ return array ( ), ), 'iterators' => array( - 'operations' => array( - 'ListEndpointsByPlatformApplication' => array( - 'token_param' => 'NextToken', - 'token_key' => 'NextToken', - 'result_key' => 'Endpoints', - ), - 'ListPlatformApplications' => array( - 'token_param' => 'NextToken', - 'token_key' => 'NextToken', - 'result_key' => 'PlatformApplications', - ), - 'ListSubscriptions' => array( - 'token_param' => 'NextToken', - 'token_key' => 'NextToken', - 'result_key' => 'Subscriptions', - ), - 'ListSubscriptionsByTopic' => array( - 'token_param' => 'NextToken', - 'token_key' => 'NextToken', - 'result_key' => 'Subscriptions', - ), - 'ListTopics' => array( - 'token_param' => 'NextToken', - 'token_key' => 'NextToken', - 'result_key' => 'Topics/*/TopicArn', - ), + 'ListEndpointsByPlatformApplication' => array( + 'input_token' => 'NextToken', + 'output_token' => 'NextToken', + 'result_key' => 'Endpoints', + ), + 'ListPlatformApplications' => array( + 'input_token' => 'NextToken', + 'output_token' => 'NextToken', + 'result_key' => 'PlatformApplications', + ), + 'ListSubscriptions' => array( + 'input_token' => 'NextToken', + 'output_token' => 'NextToken', + 'result_key' => 'Subscriptions', + ), + 'ListSubscriptionsByTopic' => array( + 'input_token' => 'NextToken', + 'output_token' => 'NextToken', + 'result_key' => 'Subscriptions', + ), + 'ListTopics' => array( + 'input_token' => 'NextToken', + 'output_token' => 'NextToken', + 'result_key' => 'Topics/*/TopicArn', ), ), ); diff --git a/inc/aws-sdk/Aws/Sns/SnsClient.php b/inc/aws-sdk/Aws/Sns/SnsClient.php index cf498e7..d21e6ef 100755 --- a/inc/aws-sdk/Aws/Sns/SnsClient.php +++ b/inc/aws-sdk/Aws/Sns/SnsClient.php @@ -57,8 +57,8 @@ use Guzzle\Service\Resource\ResourceIteratorInterface; * @method ResourceIteratorInterface getListSubscriptionsByTopicIterator(array $args = array()) The input array uses the parameters of the ListSubscriptionsByTopic operation * @method ResourceIteratorInterface getListTopicsIterator(array $args = array()) The input array uses the parameters of the ListTopics operation * - * @link http://docs.aws.amazon.com/aws-sdk-php/guide/latest/service-sns.html User guide - * @link http://docs.aws.amazon.com/aws-sdk-php/latest/class-Aws.Sns.SnsClient.html API docs + * @link http://docs.aws.amazon.com/aws-sdk-php/v2/guide/service-sns.html User guide + * @link http://docs.aws.amazon.com/aws-sdk-php/v2/api/class-Aws.Sns.SnsClient.html API docs */ class SnsClient extends AbstractClient { @@ -70,7 +70,7 @@ class SnsClient extends AbstractClient * @param array|Collection $config Client configuration data * * @return self - * @see \Aws\Common\Client\DefaultClient for a list of available configuration options + * @link http://docs.aws.amazon.com/aws-sdk-php/v2/guide/configuration.html#client-configuration-options */ public static function factory($config = array()) { diff --git a/inc/aws-sdk/Aws/Sqs/Enum/QueueAttribute.php b/inc/aws-sdk/Aws/Sqs/Enum/QueueAttribute.php index 571988e..a1774c9 100755 --- a/inc/aws-sdk/Aws/Sqs/Enum/QueueAttribute.php +++ b/inc/aws-sdk/Aws/Sqs/Enum/QueueAttribute.php @@ -36,4 +36,5 @@ class QueueAttribute extends Enum const APPROXIMATE_NUMBER_OF_MESSAGES_DELAYED = 'ApproximateNumberOfMessagesDelayed'; const DELAY_SECONDS = 'DelaySeconds'; const RECEIVE_MESSAGE_WAIT_TIME_SECONDS = 'ReceiveMessageWaitTimeSeconds'; + const REDRIVE_POLICY = 'RedrivePolicy'; } diff --git a/inc/aws-sdk/Aws/Sqs/QueueUrlListener.php b/inc/aws-sdk/Aws/Sqs/QueueUrlListener.php index 0b1ceea..843a19e 100755 --- a/inc/aws-sdk/Aws/Sqs/QueueUrlListener.php +++ b/inc/aws-sdk/Aws/Sqs/QueueUrlListener.php @@ -40,7 +40,7 @@ class QueueUrlListener implements EventSubscriberInterface */ public function onCommandBeforeSend(Event $event) { - /** @var $command AbstractCommand */ + /** @var AbstractCommand $command */ $command = $event['command']; if ($command->hasKey('QueueUrl')) { $request = $command->getRequest(); diff --git a/inc/aws-sdk/Aws/Sqs/Resources/sqs-2012-11-05.php b/inc/aws-sdk/Aws/Sqs/Resources/sqs-2012-11-05.php index 509ad2f..59b12eb 100755 --- a/inc/aws-sdk/Aws/Sqs/Resources/sqs-2012-11-05.php +++ b/inc/aws-sdk/Aws/Sqs/Resources/sqs-2012-11-05.php @@ -64,6 +64,11 @@ return array ( 'https' => true, 'hostname' => 'sqs.sa-east-1.amazonaws.com', ), + 'cn-north-1' => array( + 'http' => true, + 'https' => true, + 'hostname' => 'sqs.cn-north-1.amazonaws.com.cn', + ), 'us-gov-west-1' => array( 'http' => true, 'https' => true, @@ -121,7 +126,7 @@ return array ( ), 'errorResponses' => array( array( - 'reason' => 'The operation that you requested would violate a limit. For example, ReceiveMessage returns this error if the maximum number of messages inflight has already been reached. AddPermission returns this error if the maximum number of permissions for the queue has already been reached.', + 'reason' => 'The action that you requested would violate a limit. For example, ReceiveMessage returns this error if the maximum number of messages inflight has already been reached. AddPermission returns this error if the maximum number of permissions for the queue has already been reached.', 'class' => 'OverLimitException', ), ), @@ -279,7 +284,7 @@ return array ( 'class' => 'QueueDeletedRecentlyException', ), array( - 'reason' => 'A queue already exists with this name. SQS returns this error only if the request includes attributes whose values differ from those of the existing queue.', + 'reason' => 'A queue already exists with this name. Amazon SQS returns this error only if the request includes attributes whose values differ from those of the existing queue.', 'class' => 'QueueNameExistsException', ), ), @@ -438,21 +443,6 @@ return array ( 'items' => array( 'name' => 'AttributeName', 'type' => 'string', - 'enum' => array( - 'All', - 'Policy', - 'VisibilityTimeout', - 'MaximumMessageSize', - 'MessageRetentionPeriod', - 'ApproximateNumberOfMessages', - 'ApproximateNumberOfMessagesNotVisible', - 'CreatedTimestamp', - 'LastModifiedTimestamp', - 'QueueArn', - 'ApproximateNumberOfMessagesDelayed', - 'DelaySeconds', - 'ReceiveMessageWaitTimeSeconds', - ), ), ), ), @@ -497,6 +487,36 @@ return array ( ), ), ), + 'ListDeadLetterSourceQueues' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'ListDeadLetterSourceQueuesResult', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'ListDeadLetterSourceQueues', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2012-11-05', + ), + 'QueueUrl' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The queue referred to does not exist.', + 'class' => 'QueueDoesNotExistException', + ), + ), + ), 'ListQueues' => array( 'httpMethod' => 'POST', 'uri' => '/', @@ -520,6 +540,40 @@ return array ( ), ), ), + 'PurgeQueue' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'EmptyOutput', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'PurgeQueue', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2012-11-05', + ), + 'QueueUrl' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'aws.query', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The queue referred to does not exist.', + 'class' => 'QueueDoesNotExistException', + ), + array( + 'reason' => 'Indicates that the specified queue previously received a PurgeQueue request within the last 60 seconds, the time it can take to delete the messages in the queue.', + 'class' => 'PurgeQueueInProgressException', + ), + ), + ), 'ReceiveMessage' => array( 'httpMethod' => 'POST', 'uri' => '/', @@ -551,6 +605,15 @@ return array ( 'type' => 'string', ), ), + 'MessageAttributeNames' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'MessageAttributeName', + 'items' => array( + 'name' => 'MessageAttributeName', + 'type' => 'string', + ), + ), 'MaxNumberOfMessages' => array( 'type' => 'numeric', 'location' => 'aws.query', @@ -566,7 +629,7 @@ return array ( ), 'errorResponses' => array( array( - 'reason' => 'The operation that you requested would violate a limit. For example, ReceiveMessage returns this error if the maximum number of messages inflight has already been reached. AddPermission returns this error if the maximum number of permissions for the queue has already been reached.', + 'reason' => 'The action that you requested would violate a limit. For example, ReceiveMessage returns this error if the maximum number of messages inflight has already been reached. AddPermission returns this error if the maximum number of permissions for the queue has already been reached.', 'class' => 'OverLimitException', ), ), @@ -631,12 +694,59 @@ return array ( 'type' => 'numeric', 'location' => 'aws.query', ), + 'MessageAttributes' => array( + 'type' => 'object', + 'location' => 'aws.query', + 'sentAs' => 'MessageAttribute', + 'data' => array( + 'keyName' => 'Name', + 'valueName' => 'Value', + ), + 'additionalProperties' => array( + 'type' => 'object', + 'data' => array( + 'shape_name' => 'String', + ), + 'properties' => array( + 'StringValue' => array( + 'type' => 'string', + ), + 'BinaryValue' => array( + 'type' => 'string', + ), + 'StringListValues' => array( + 'type' => 'array', + 'sentAs' => 'StringListValue', + 'items' => array( + 'name' => 'StringListValue', + 'type' => 'string', + ), + ), + 'BinaryListValues' => array( + 'type' => 'array', + 'sentAs' => 'BinaryListValue', + 'items' => array( + 'name' => 'BinaryListValue', + 'type' => 'string', + ), + ), + 'DataType' => array( + 'required' => true, + 'type' => 'string', + ), + ), + ), + ), ), 'errorResponses' => array( array( 'reason' => 'The message contains characters outside the allowed set.', 'class' => 'InvalidMessageContentsException', ), + array( + 'reason' => 'Error code 400. Unsupported operation.', + 'class' => 'UnsupportedOperationException', + ), ), ), 'SendMessageBatch' => array( @@ -681,6 +791,48 @@ return array ( 'DelaySeconds' => array( 'type' => 'numeric', ), + 'MessageAttributes' => array( + 'type' => 'object', + 'sentAs' => 'MessageAttribute', + 'data' => array( + 'keyName' => 'Name', + 'valueName' => 'Value', + ), + 'additionalProperties' => array( + 'type' => 'object', + 'data' => array( + 'shape_name' => 'String', + ), + 'properties' => array( + 'StringValue' => array( + 'type' => 'string', + ), + 'BinaryValue' => array( + 'type' => 'string', + ), + 'StringListValues' => array( + 'type' => 'array', + 'sentAs' => 'StringListValue', + 'items' => array( + 'name' => 'StringListValue', + 'type' => 'string', + ), + ), + 'BinaryListValues' => array( + 'type' => 'array', + 'sentAs' => 'BinaryListValue', + 'items' => array( + 'name' => 'BinaryListValue', + 'type' => 'string', + ), + ), + 'DataType' => array( + 'required' => true, + 'type' => 'string', + ), + ), + ), + ), ), ), ), @@ -706,6 +858,10 @@ return array ( 'reason' => 'The Id of a batch entry in a batch request does not abide by the specification.', 'class' => 'InvalidBatchEntryIdException', ), + array( + 'reason' => 'Error code 400. Unsupported operation.', + 'class' => 'UnsupportedOperationException', + ), ), ), 'SetQueueAttributes' => array( @@ -895,6 +1051,7 @@ return array ( 'ApproximateNumberOfMessagesDelayed', 'DelaySeconds', 'ReceiveMessageWaitTimeSeconds', + 'RedrivePolicy', ), ), 'filters' => array( @@ -936,6 +1093,25 @@ return array ( ), ), ), + 'ListDeadLetterSourceQueuesResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'queueUrls' => array( + 'type' => 'array', + 'location' => 'xml', + 'sentAs' => 'QueueUrl', + 'data' => array( + 'xmlFlattened' => true, + ), + 'items' => array( + 'name' => 'QueueUrl', + 'type' => 'string', + 'sentAs' => 'QueueUrl', + ), + ), + ), + ), 'ListQueuesResult' => array( 'type' => 'object', 'additionalProperties' => true, @@ -1001,6 +1177,7 @@ return array ( 'ApproximateNumberOfMessagesDelayed', 'DelaySeconds', 'ReceiveMessageWaitTimeSeconds', + 'RedrivePolicy', ), ), 'filters' => array( @@ -1030,6 +1207,77 @@ return array ( ), 'additionalProperties' => false, ), + 'MD5OfMessageAttributes' => array( + 'type' => 'string', + ), + 'MessageAttributes' => array( + 'type' => 'array', + 'sentAs' => 'MessageAttribute', + 'data' => array( + 'xmlFlattened' => true, + ), + 'filters' => array( + array( + 'method' => 'Aws\\Common\\Command\\XmlResponseLocationVisitor::xmlMap', + 'args' => array( + '@value', + 'MessageAttribute', + 'Name', + 'Value', + ), + ), + ), + 'items' => array( + 'name' => 'MessageAttribute', + 'type' => 'object', + 'sentAs' => 'MessageAttribute', + 'additionalProperties' => true, + 'properties' => array( + 'Name' => array( + 'type' => 'string', + ), + 'Value' => array( + 'type' => 'object', + 'properties' => array( + 'StringValue' => array( + 'type' => 'string', + ), + 'BinaryValue' => array( + 'type' => 'string', + ), + 'StringListValues' => array( + 'type' => 'array', + 'sentAs' => 'StringListValue', + 'data' => array( + 'xmlFlattened' => true, + ), + 'items' => array( + 'name' => 'StringListValue', + 'type' => 'string', + 'sentAs' => 'StringListValue', + ), + ), + 'BinaryListValues' => array( + 'type' => 'array', + 'sentAs' => 'BinaryListValue', + 'data' => array( + 'xmlFlattened' => true, + ), + 'items' => array( + 'name' => 'BinaryListValue', + 'type' => 'string', + 'sentAs' => 'BinaryListValue', + ), + ), + 'DataType' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + 'additionalProperties' => false, + ), ), ), ), @@ -1043,6 +1291,10 @@ return array ( 'type' => 'string', 'location' => 'xml', ), + 'MD5OfMessageAttributes' => array( + 'type' => 'string', + 'location' => 'xml', + ), 'MessageId' => array( 'type' => 'string', 'location' => 'xml', @@ -1074,6 +1326,9 @@ return array ( 'MD5OfMessageBody' => array( 'type' => 'string', ), + 'MD5OfMessageAttributes' => array( + 'type' => 'string', + ), ), ), ), @@ -1108,10 +1363,8 @@ return array ( ), ), 'iterators' => array( - 'operations' => array( - 'ListQueues' => array( - 'result_key' => 'QueueUrls', - ), + 'ListQueues' => array( + 'result_key' => 'QueueUrls', ), ), ); diff --git a/inc/aws-sdk/Aws/Sqs/SqsClient.php b/inc/aws-sdk/Aws/Sqs/SqsClient.php index 01ecacf..11c999e 100755 --- a/inc/aws-sdk/Aws/Sqs/SqsClient.php +++ b/inc/aws-sdk/Aws/Sqs/SqsClient.php @@ -35,7 +35,9 @@ use Guzzle\Service\Resource\ResourceIteratorInterface; * @method Model deleteQueue(array $args = array()) {@command Sqs DeleteQueue} * @method Model getQueueAttributes(array $args = array()) {@command Sqs GetQueueAttributes} * @method Model getQueueUrl(array $args = array()) {@command Sqs GetQueueUrl} + * @method Model listDeadLetterSourceQueues(array $args = array()) {@command Sqs ListDeadLetterSourceQueues} * @method Model listQueues(array $args = array()) {@command Sqs ListQueues} + * @method Model purgeQueue(array $args = array()) {@command Sqs PurgeQueue} * @method Model receiveMessage(array $args = array()) {@command Sqs ReceiveMessage} * @method Model removePermission(array $args = array()) {@command Sqs RemovePermission} * @method Model sendMessage(array $args = array()) {@command Sqs SendMessage} @@ -43,8 +45,8 @@ use Guzzle\Service\Resource\ResourceIteratorInterface; * @method Model setQueueAttributes(array $args = array()) {@command Sqs SetQueueAttributes} * @method ResourceIteratorInterface getListQueuesIterator(array $args = array()) The input array uses the parameters of the ListQueues operation * - * @link http://docs.aws.amazon.com/aws-sdk-php/guide/latest/service-sqs.html User guide - * @link http://docs.aws.amazon.com/aws-sdk-php/latest/class-Aws.Sqs.SqsClient.html API docs + * @link http://docs.aws.amazon.com/aws-sdk-php/v2/guide/service-sqs.html User guide + * @link http://docs.aws.amazon.com/aws-sdk-php/v2/api/class-Aws.Sqs.SqsClient.html API docs */ class SqsClient extends AbstractClient { @@ -56,7 +58,7 @@ class SqsClient extends AbstractClient * @param array|Collection $config Client configuration data * * @return self - * @see \Aws\Common\Client\DefaultClient for a list of available configuration options + * @link http://docs.aws.amazon.com/aws-sdk-php/v2/guide/configuration.html#client-configuration-options */ public static function factory($config = array()) { diff --git a/inc/aws-sdk/Aws/Ssm/Exception/SsmException.php b/inc/aws-sdk/Aws/Ssm/Exception/SsmException.php new file mode 100644 index 0000000..5567161 --- /dev/null +++ b/inc/aws-sdk/Aws/Ssm/Exception/SsmException.php @@ -0,0 +1,24 @@ + '2014-11-06', + 'endpointPrefix' => 'ssm', + 'serviceFullName' => 'Amazon Simple Systems Management Service', + 'serviceAbbreviation' => 'Amazon SSM', + 'serviceType' => 'json', + 'jsonVersion' => '1.1', + 'targetPrefix' => 'AmazonSSM.', + 'signatureVersion' => 'v4', + 'namespace' => 'Ssm', + 'operations' => array( + 'CreateAssociation' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'CreateAssociationResult', + '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' => 'AmazonSSM.CreateAssociation', + ), + 'Name' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 3, + 'maxLength' => 64, + ), + 'InstanceId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 10, + 'maxLength' => 10, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The specified association already exists.', + 'class' => 'AssociationAlreadyExistsException', + ), + array( + 'reason' => 'You can have at most 2,000 active associations.', + 'class' => 'AssociationLimitExceededException', + ), + array( + 'reason' => 'An error occurred on the server side.', + 'class' => 'InternalServerErrorException', + ), + array( + 'reason' => 'The configuration document is not valid.', + 'class' => 'InvalidDocumentException', + ), + array( + 'reason' => 'You must specify the ID of a running instance.', + 'class' => 'InvalidInstanceIdException', + ), + ), + ), + 'CreateAssociationBatch' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'CreateAssociationBatchResult', + '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' => 'AmazonSSM.CreateAssociationBatch', + ), + 'Entries' => array( + 'required' => true, + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'entries', + 'type' => 'object', + 'properties' => array( + 'Name' => array( + 'type' => 'string', + 'minLength' => 3, + 'maxLength' => 64, + ), + 'InstanceId' => array( + 'type' => 'string', + 'minLength' => 10, + 'maxLength' => 10, + ), + ), + ), + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'An error occurred on the server side.', + 'class' => 'InternalServerErrorException', + ), + array( + 'reason' => 'The configuration document is not valid.', + 'class' => 'InvalidDocumentException', + ), + array( + 'reason' => 'You must specify the ID of a running instance.', + 'class' => 'InvalidInstanceIdException', + ), + array( + 'reason' => 'You cannot specify an instance ID in more than one association.', + 'class' => 'DuplicateInstanceIdException', + ), + array( + 'reason' => 'You can have at most 2,000 active associations.', + 'class' => 'AssociationLimitExceededException', + ), + ), + ), + 'CreateDocument' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'CreateDocumentResult', + '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' => 'AmazonSSM.CreateDocument', + ), + 'Content' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + ), + 'Name' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 3, + 'maxLength' => 64, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The specified configuration document already exists.', + 'class' => 'DocumentAlreadyExistsException', + ), + array( + 'reason' => 'The size limit of a configuration document is 64 KB.', + 'class' => 'MaxDocumentSizeExceededException', + ), + array( + 'reason' => 'An error occurred on the server side.', + 'class' => 'InternalServerErrorException', + ), + array( + 'reason' => 'The content for the configuration document is not valid.', + 'class' => 'InvalidDocumentContentException', + ), + array( + 'reason' => 'You can have at most 100 active configuration documents.', + 'class' => 'DocumentLimitExceededException', + ), + ), + ), + 'DeleteAssociation' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'EmptyOutput', + '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' => 'AmazonSSM.DeleteAssociation', + ), + 'Name' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 3, + 'maxLength' => 64, + ), + 'InstanceId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 10, + 'maxLength' => 10, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The specified association does not exist.', + 'class' => 'AssociationDoesNotExistException', + ), + array( + 'reason' => 'An error occurred on the server side.', + 'class' => 'InternalServerErrorException', + ), + array( + 'reason' => 'The configuration document is not valid.', + 'class' => 'InvalidDocumentException', + ), + array( + 'reason' => 'You must specify the ID of a running instance.', + 'class' => 'InvalidInstanceIdException', + ), + array( + 'reason' => 'There are concurrent updates for a resource that supports one update at a time.', + 'class' => 'TooManyUpdatesException', + ), + ), + ), + 'DeleteDocument' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'EmptyOutput', + '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' => 'AmazonSSM.DeleteDocument', + ), + 'Name' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 3, + 'maxLength' => 64, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'An error occurred on the server side.', + 'class' => 'InternalServerErrorException', + ), + array( + 'reason' => 'The configuration document is not valid.', + 'class' => 'InvalidDocumentException', + ), + array( + 'reason' => 'You must disassociate a configuration document from all instances before you can delete it.', + 'class' => 'AssociatedInstancesException', + ), + ), + ), + 'DescribeAssociation' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'DescribeAssociationResult', + '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' => 'AmazonSSM.DescribeAssociation', + ), + 'Name' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 3, + 'maxLength' => 64, + ), + 'InstanceId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 10, + 'maxLength' => 10, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The specified association does not exist.', + 'class' => 'AssociationDoesNotExistException', + ), + array( + 'reason' => 'An error occurred on the server side.', + 'class' => 'InternalServerErrorException', + ), + array( + 'reason' => 'The configuration document is not valid.', + 'class' => 'InvalidDocumentException', + ), + array( + 'reason' => 'You must specify the ID of a running instance.', + 'class' => 'InvalidInstanceIdException', + ), + ), + ), + 'DescribeDocument' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'DescribeDocumentResult', + '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' => 'AmazonSSM.DescribeDocument', + ), + 'Name' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 3, + 'maxLength' => 64, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'An error occurred on the server side.', + 'class' => 'InternalServerErrorException', + ), + array( + 'reason' => 'The configuration document is not valid.', + 'class' => 'InvalidDocumentException', + ), + ), + ), + 'GetDocument' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'GetDocumentResult', + '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' => 'AmazonSSM.GetDocument', + ), + 'Name' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 3, + 'maxLength' => 64, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'An error occurred on the server side.', + 'class' => 'InternalServerErrorException', + ), + array( + 'reason' => 'The configuration document is not valid.', + 'class' => 'InvalidDocumentException', + ), + ), + ), + 'ListAssociations' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'ListAssociationsResult', + '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' => 'AmazonSSM.ListAssociations', + ), + 'AssociationFilterList' => array( + 'required' => true, + 'type' => 'array', + 'location' => 'json', + 'minItems' => 1, + 'items' => array( + 'name' => 'AssociationFilter', + 'type' => 'object', + 'properties' => array( + 'key' => array( + 'required' => true, + 'type' => 'string', + ), + 'value' => array( + 'required' => true, + 'type' => 'string', + 'minLength' => 1, + ), + ), + ), + ), + 'MaxResults' => array( + 'type' => 'numeric', + 'location' => 'json', + 'minimum' => 1, + 'maximum' => 25, + ), + 'NextToken' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'An error occurred on the server side.', + 'class' => 'InternalServerErrorException', + ), + array( + 'reason' => 'The specified token is not valid.', + 'class' => 'InvalidNextTokenException', + ), + ), + ), + 'ListDocuments' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'ListDocumentsResult', + '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' => 'AmazonSSM.ListDocuments', + ), + 'DocumentFilterList' => array( + 'type' => 'array', + 'location' => 'json', + 'minItems' => 1, + 'items' => array( + 'name' => 'DocumentFilter', + 'type' => 'object', + 'properties' => array( + 'key' => array( + 'required' => true, + 'type' => 'string', + ), + 'value' => array( + 'required' => true, + 'type' => 'string', + 'minLength' => 1, + ), + ), + ), + ), + 'MaxResults' => array( + 'type' => 'numeric', + 'location' => 'json', + 'minimum' => 1, + 'maximum' => 25, + ), + 'NextToken' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'An error occurred on the server side.', + 'class' => 'InternalServerErrorException', + ), + array( + 'reason' => 'The specified token is not valid.', + 'class' => 'InvalidNextTokenException', + ), + ), + ), + 'UpdateAssociationStatus' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'UpdateAssociationStatusResult', + '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' => 'AmazonSSM.UpdateAssociationStatus', + ), + 'Name' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 3, + 'maxLength' => 64, + ), + 'InstanceId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 10, + 'maxLength' => 10, + ), + 'AssociationStatus' => array( + 'required' => true, + 'type' => 'object', + 'location' => 'json', + 'properties' => array( + 'Date' => array( + 'required' => true, + 'type' => array( + 'object', + 'string', + 'integer', + ), + 'format' => 'date-time', + ), + 'Name' => array( + 'required' => true, + 'type' => 'string', + ), + 'Message' => array( + 'required' => true, + 'type' => 'string', + 'maxLength' => 1024, + ), + 'AdditionalInfo' => array( + 'type' => 'string', + 'maxLength' => 1024, + ), + ), + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'An error occurred on the server side.', + 'class' => 'InternalServerErrorException', + ), + array( + 'reason' => 'You must specify the ID of a running instance.', + 'class' => 'InvalidInstanceIdException', + ), + array( + 'reason' => 'The configuration document is not valid.', + 'class' => 'InvalidDocumentException', + ), + array( + 'reason' => 'The specified association does not exist.', + 'class' => 'AssociationDoesNotExistException', + ), + array( + 'reason' => 'The updated status is the same as the current status.', + 'class' => 'StatusUnchangedException', + ), + array( + 'reason' => 'There are concurrent updates for a resource that supports one update at a time.', + 'class' => 'TooManyUpdatesException', + ), + ), + ), + ), + 'models' => array( + 'CreateAssociationResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'AssociationDescription' => array( + 'type' => 'object', + 'location' => 'json', + 'properties' => array( + 'Name' => array( + 'type' => 'string', + ), + 'InstanceId' => array( + 'type' => 'string', + ), + 'Date' => array( + 'type' => 'string', + ), + 'Status' => array( + 'type' => 'object', + 'properties' => array( + 'Date' => array( + 'type' => 'string', + ), + 'Name' => array( + 'type' => 'string', + ), + 'Message' => array( + 'type' => 'string', + ), + 'AdditionalInfo' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + ), + 'CreateAssociationBatchResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'Successful' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'AssociationDescription', + 'type' => 'object', + 'sentAs' => 'AssociationDescription', + 'properties' => array( + 'Name' => array( + 'type' => 'string', + ), + 'InstanceId' => array( + 'type' => 'string', + ), + 'Date' => array( + 'type' => 'string', + ), + 'Status' => array( + 'type' => 'object', + 'properties' => array( + 'Date' => array( + 'type' => 'string', + ), + 'Name' => array( + 'type' => 'string', + ), + 'Message' => array( + 'type' => 'string', + ), + 'AdditionalInfo' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + 'Failed' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'FailedCreateAssociationEntry', + 'type' => 'object', + 'sentAs' => 'FailedCreateAssociationEntry', + 'properties' => array( + 'Entry' => array( + 'type' => 'object', + 'properties' => array( + 'Name' => array( + 'type' => 'string', + ), + 'InstanceId' => array( + 'type' => 'string', + ), + ), + ), + 'Message' => array( + 'type' => 'string', + ), + 'Fault' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + 'CreateDocumentResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'DocumentDescription' => array( + 'type' => 'object', + 'location' => 'json', + 'properties' => array( + 'Sha1' => array( + 'type' => 'string', + ), + 'Name' => array( + 'type' => 'string', + ), + 'CreatedDate' => array( + 'type' => 'string', + ), + 'Status' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + 'EmptyOutput' => array( + 'type' => 'object', + 'additionalProperties' => true, + ), + 'DescribeAssociationResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'AssociationDescription' => array( + 'type' => 'object', + 'location' => 'json', + 'properties' => array( + 'Name' => array( + 'type' => 'string', + ), + 'InstanceId' => array( + 'type' => 'string', + ), + 'Date' => array( + 'type' => 'string', + ), + 'Status' => array( + 'type' => 'object', + 'properties' => array( + 'Date' => array( + 'type' => 'string', + ), + 'Name' => array( + 'type' => 'string', + ), + 'Message' => array( + 'type' => 'string', + ), + 'AdditionalInfo' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + ), + 'DescribeDocumentResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'Document' => array( + 'type' => 'object', + 'location' => 'json', + 'properties' => array( + 'Sha1' => array( + 'type' => 'string', + ), + 'Name' => array( + 'type' => 'string', + ), + 'CreatedDate' => array( + 'type' => 'string', + ), + 'Status' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + 'GetDocumentResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'Name' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'Content' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + ), + 'ListAssociationsResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'Associations' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'Association', + 'type' => 'object', + 'sentAs' => 'Association', + 'properties' => array( + 'Name' => array( + 'type' => 'string', + ), + 'InstanceId' => array( + 'type' => 'string', + ), + ), + ), + ), + 'NextToken' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + ), + 'ListDocumentsResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'DocumentIdentifiers' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'DocumentIdentifier', + 'type' => 'object', + 'sentAs' => 'DocumentIdentifier', + 'properties' => array( + 'Name' => array( + 'type' => 'string', + ), + ), + ), + ), + 'NextToken' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + ), + 'UpdateAssociationStatusResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'AssociationDescription' => array( + 'type' => 'object', + 'location' => 'json', + 'properties' => array( + 'Name' => array( + 'type' => 'string', + ), + 'InstanceId' => array( + 'type' => 'string', + ), + 'Date' => array( + 'type' => 'string', + ), + 'Status' => array( + 'type' => 'object', + 'properties' => array( + 'Date' => array( + 'type' => 'string', + ), + 'Name' => array( + 'type' => 'string', + ), + 'Message' => array( + 'type' => 'string', + ), + 'AdditionalInfo' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + ), + ), +); diff --git a/inc/aws-sdk/Aws/Ssm/SsmClient.php b/inc/aws-sdk/Aws/Ssm/SsmClient.php new file mode 100644 index 0000000..7661810 --- /dev/null +++ b/inc/aws-sdk/Aws/Ssm/SsmClient.php @@ -0,0 +1,69 @@ +setConfig($config) + ->setConfigDefaults(array( + Options::VERSION => self::LATEST_API_VERSION, + Options::SERVICE_DESCRIPTION => __DIR__ . '/Resources/ssm-%s.php' + )) + ->setExceptionParser(new JsonQueryExceptionParser()) + ->build(); + } +} diff --git a/inc/aws-sdk/Aws/StorageGateway/Resources/storagegateway-2013-06-30.php b/inc/aws-sdk/Aws/StorageGateway/Resources/storagegateway-2013-06-30.php index d3bb60f..2411cb8 100755 --- a/inc/aws-sdk/Aws/StorageGateway/Resources/storagegateway-2013-06-30.php +++ b/inc/aws-sdk/Aws/StorageGateway/Resources/storagegateway-2013-06-30.php @@ -64,6 +64,11 @@ return array ( 'https' => true, 'hostname' => 'storagegateway.sa-east-1.amazonaws.com', ), + 'cn-north-1' => array( + 'http' => false, + 'https' => true, + 'hostname' => 'storagegateway.cn-north-1.amazonaws.com.cn', + ), ), 'operations' => array( 'ActivateGateway' => array( @@ -655,8 +660,6 @@ return array ( 'required' => true, 'type' => 'numeric', 'location' => 'json', - 'minimum' => 107374182400, - 'maximum' => 2748779069440, ), 'ClientToken' => array( 'required' => true, @@ -1842,6 +1845,46 @@ return array ( ), ), ), + 'ResetCache' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'ResetCacheOutput', + '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' => 'StorageGateway_20130630.ResetCache', + ), + 'GatewayARN' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 50, + 'maxLength' => 500, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'An exception occurred because an invalid gateway request was issued to the service. See the error and message fields for more information.', + 'class' => 'InvalidGatewayRequestException', + ), + array( + 'reason' => 'An internal server error has occurred during the request. See the error and message fields for more information.', + 'class' => 'InternalServerErrorException', + ), + ), + ), 'RetrieveTapeArchive' => array( 'httpMethod' => 'POST', 'uri' => '/', @@ -2335,6 +2378,53 @@ return array ( ), ), ), + 'UpdateVTLDeviceType' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'UpdateVTLDeviceTypeOutput', + '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' => 'StorageGateway_20130630.UpdateVTLDeviceType', + ), + 'VTLDeviceARN' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 50, + 'maxLength' => 500, + ), + 'DeviceType' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 2, + 'maxLength' => 50, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'An exception occurred because an invalid gateway request was issued to the service. See the error and message fields for more information.', + 'class' => 'InvalidGatewayRequestException', + ), + array( + 'reason' => 'An internal server error has occurred during the request. See the error and message fields for more information.', + 'class' => 'InternalServerErrorException', + ), + ), + ), ), 'models' => array( 'ActivateGatewayOutput' => array( @@ -3134,6 +3224,9 @@ return array ( 'DiskNode' => array( 'type' => 'string', ), + 'DiskStatus' => array( + 'type' => 'string', + ), 'DiskSizeInBytes' => array( 'type' => 'numeric', ), @@ -3210,6 +3303,15 @@ return array ( ), ), ), + 'ResetCacheOutput' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'GatewayARN' => array( + 'type' => 'string', + ), + ), + ), 'RetrieveTapeArchiveOutput' => array( 'type' => 'object', 'additionalProperties' => true, @@ -3314,57 +3416,64 @@ return array ( ), ), ), + 'UpdateVTLDeviceTypeOutput' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'VTLDeviceARN' => array( + 'type' => 'string', + ), + ), + ), ), 'iterators' => array( - 'operations' => array( - 'DescribeCachediSCSIVolumes' => array( - 'result_key' => 'CachediSCSIVolumes', - ), - 'DescribeStorediSCSIVolumes' => array( - 'result_key' => 'StorediSCSIVolumes', - ), - 'DescribeTapeArchives' => array( - 'token_param' => 'Marker', - 'token_key' => 'Marker', - 'limit_key' => 'Limit', - 'result_key' => 'TapeArchives', - ), - 'DescribeTapeRecoveryPoints' => array( - 'token_param' => 'Marker', - 'token_key' => 'Marker', - 'limit_key' => 'Limit', - 'result_key' => 'TapeRecoveryPointInfos', - ), - 'DescribeTapes' => array( - 'token_param' => 'Marker', - 'token_key' => 'Marker', - 'limit_key' => 'Limit', - 'result_key' => 'Tapes', - ), - 'DescribeVTLDevices' => array( - 'token_param' => 'Marker', - 'token_key' => 'Marker', - 'limit_key' => 'Limit', - 'result_key' => 'VTLDevices', - ), - 'ListGateways' => array( - 'token_param' => 'Marker', - 'token_key' => 'Marker', - 'limit_key' => 'Limit', - 'result_key' => 'Gateways', - ), - 'ListLocalDisks' => array( - 'result_key' => 'Disks', - ), - 'ListVolumeRecoveryPoints' => array( - 'result_key' => 'VolumeRecoveryPointInfos', - ), - 'ListVolumes' => array( - 'token_param' => 'Marker', - 'token_key' => 'Marker', - 'limit_key' => 'Limit', - 'result_key' => 'VolumeInfos', - ), + 'DescribeCachediSCSIVolumes' => array( + 'result_key' => 'CachediSCSIVolumes', + ), + 'DescribeStorediSCSIVolumes' => array( + 'result_key' => 'StorediSCSIVolumes', + ), + 'DescribeTapeArchives' => array( + 'input_token' => 'Marker', + 'limit_key' => 'Limit', + 'output_token' => 'Marker', + 'result_key' => 'TapeArchives', + ), + 'DescribeTapeRecoveryPoints' => array( + 'input_token' => 'Marker', + 'limit_key' => 'Limit', + 'output_token' => 'Marker', + 'result_key' => 'TapeRecoveryPointInfos', + ), + 'DescribeTapes' => array( + 'input_token' => 'Marker', + 'limit_key' => 'Limit', + 'output_token' => 'Marker', + 'result_key' => 'Tapes', + ), + 'DescribeVTLDevices' => array( + 'input_token' => 'Marker', + 'limit_key' => 'Limit', + 'output_token' => 'Marker', + 'result_key' => 'VTLDevices', + ), + 'ListGateways' => array( + 'input_token' => 'Marker', + 'limit_key' => 'Limit', + 'output_token' => 'Marker', + 'result_key' => 'Gateways', + ), + 'ListLocalDisks' => array( + 'result_key' => 'Disks', + ), + 'ListVolumeRecoveryPoints' => array( + 'result_key' => 'VolumeRecoveryPointInfos', + ), + 'ListVolumes' => array( + 'input_token' => 'Marker', + 'limit_key' => 'Limit', + 'output_token' => 'Marker', + 'result_key' => 'VolumeInfos', ), ), ); diff --git a/inc/aws-sdk/Aws/StorageGateway/StorageGatewayClient.php b/inc/aws-sdk/Aws/StorageGateway/StorageGatewayClient.php index 31a3484..01e7fd5 100755 --- a/inc/aws-sdk/Aws/StorageGateway/StorageGatewayClient.php +++ b/inc/aws-sdk/Aws/StorageGateway/StorageGatewayClient.php @@ -64,6 +64,7 @@ use Guzzle\Service\Resource\ResourceIteratorInterface; * @method Model listLocalDisks(array $args = array()) {@command StorageGateway ListLocalDisks} * @method Model listVolumeRecoveryPoints(array $args = array()) {@command StorageGateway ListVolumeRecoveryPoints} * @method Model listVolumes(array $args = array()) {@command StorageGateway ListVolumes} + * @method Model resetCache(array $args = array()) {@command StorageGateway ResetCache} * @method Model retrieveTapeArchive(array $args = array()) {@command StorageGateway RetrieveTapeArchive} * @method Model retrieveTapeRecoveryPoint(array $args = array()) {@command StorageGateway RetrieveTapeRecoveryPoint} * @method Model shutdownGateway(array $args = array()) {@command StorageGateway ShutdownGateway} @@ -74,6 +75,7 @@ use Guzzle\Service\Resource\ResourceIteratorInterface; * @method Model updateGatewaySoftwareNow(array $args = array()) {@command StorageGateway UpdateGatewaySoftwareNow} * @method Model updateMaintenanceStartTime(array $args = array()) {@command StorageGateway UpdateMaintenanceStartTime} * @method Model updateSnapshotSchedule(array $args = array()) {@command StorageGateway UpdateSnapshotSchedule} + * @method Model updateVTLDeviceType(array $args = array()) {@command StorageGateway UpdateVTLDeviceType} * @method ResourceIteratorInterface getDescribeCachediSCSIVolumesIterator(array $args = array()) The input array uses the parameters of the DescribeCachediSCSIVolumes operation * @method ResourceIteratorInterface getDescribeStorediSCSIVolumesIterator(array $args = array()) The input array uses the parameters of the DescribeStorediSCSIVolumes operation * @method ResourceIteratorInterface getDescribeTapeArchivesIterator(array $args = array()) The input array uses the parameters of the DescribeTapeArchives operation @@ -85,8 +87,8 @@ use Guzzle\Service\Resource\ResourceIteratorInterface; * @method ResourceIteratorInterface getListVolumeRecoveryPointsIterator(array $args = array()) The input array uses the parameters of the ListVolumeRecoveryPoints operation * @method ResourceIteratorInterface getListVolumesIterator(array $args = array()) The input array uses the parameters of the ListVolumes operation * - * @link http://docs.aws.amazon.com/aws-sdk-php/guide/latest/service-storagegateway.html User guide - * @link http://docs.aws.amazon.com/aws-sdk-php/latest/class-Aws.StorageGateway.StorageGatewayClient.html API docs + * @link http://docs.aws.amazon.com/aws-sdk-php/v2/guide/service-storagegateway.html User guide + * @link http://docs.aws.amazon.com/aws-sdk-php/v2/api/class-Aws.StorageGateway.StorageGatewayClient.html API docs */ class StorageGatewayClient extends AbstractClient { @@ -98,7 +100,7 @@ class StorageGatewayClient extends AbstractClient * @param array|Collection $config Client configuration data * * @return self - * @see \Aws\Common\Client\DefaultClient for a list of available configuration options + * @link http://docs.aws.amazon.com/aws-sdk-php/v2/guide/configuration.html#client-configuration-options */ public static function factory($config = array()) { diff --git a/inc/aws-sdk/Aws/Sts/Resources/sts-2011-06-15.php b/inc/aws-sdk/Aws/Sts/Resources/sts-2011-06-15.php index b311666..96c89c5 100755 --- a/inc/aws-sdk/Aws/Sts/Resources/sts-2011-06-15.php +++ b/inc/aws-sdk/Aws/Sts/Resources/sts-2011-06-15.php @@ -65,6 +65,11 @@ return array ( 'https' => true, 'hostname' => 'sts.amazonaws.com', ), + 'cn-north-1' => array( + 'http' => false, + 'https' => true, + 'hostname' => 'sts.cn-north-1.amazonaws.com.cn', + ), 'us-gov-west-1' => array( 'http' => false, 'https' => true, @@ -121,6 +126,18 @@ return array ( 'minLength' => 2, 'maxLength' => 96, ), + 'SerialNumber' => array( + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 9, + 'maxLength' => 256, + ), + 'TokenCode' => array( + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 6, + 'maxLength' => 6, + ), ), 'errorResponses' => array( array( @@ -488,6 +505,26 @@ return array ( 'type' => 'numeric', 'location' => 'xml', ), + 'Subject' => array( + 'type' => 'string', + 'location' => 'xml', + ), + 'SubjectType' => array( + 'type' => 'string', + 'location' => 'xml', + ), + 'Issuer' => array( + 'type' => 'string', + 'location' => 'xml', + ), + 'Audience' => array( + 'type' => 'string', + 'location' => 'xml', + ), + 'NameQualifier' => array( + 'type' => 'string', + 'location' => 'xml', + ), ), ), 'AssumeRoleWithWebIdentityResponse' => array( @@ -532,6 +569,14 @@ return array ( 'type' => 'numeric', 'location' => 'xml', ), + 'Provider' => array( + 'type' => 'string', + 'location' => 'xml', + ), + 'Audience' => array( + 'type' => 'string', + 'location' => 'xml', + ), ), ), 'DecodeAuthorizationMessageResponse' => array( diff --git a/inc/aws-sdk/Aws/Sts/StsClient.php b/inc/aws-sdk/Aws/Sts/StsClient.php index 14489d6..c23b6d2 100755 --- a/inc/aws-sdk/Aws/Sts/StsClient.php +++ b/inc/aws-sdk/Aws/Sts/StsClient.php @@ -18,7 +18,6 @@ namespace Aws\Sts; use Aws\Common\Client\AbstractClient; use Aws\Common\Client\ClientBuilder; -use Aws\Common\Client\UnsignedOperationsListener; use Aws\Common\Credentials\Credentials; use Aws\Common\Enum\ClientOptions as Options; use Aws\Common\Exception\InvalidArgumentException; @@ -39,8 +38,8 @@ use Symfony\Component\EventDispatcher\Event; * @method Model getFederationToken(array $args = array()) {@command Sts GetFederationToken} * @method Model getSessionToken(array $args = array()) {@command Sts GetSessionToken} * - * @link http://docs.aws.amazon.com/aws-sdk-php/guide/latest/service-sts.html User guide - * @link http://docs.aws.amazon.com/aws-sdk-php/latest/class-Aws.Sts.StsClient.html API docs + * @link http://docs.aws.amazon.com/aws-sdk-php/v2/guide/service-sts.html User guide + * @link http://docs.aws.amazon.com/aws-sdk-php/v2/api/class-Aws.Sts.StsClient.html API docs */ class StsClient extends AbstractClient { @@ -53,7 +52,7 @@ class StsClient extends AbstractClient * * @return self * @throws InvalidArgumentException - * @see \Aws\Common\Client\DefaultClient for a list of available configuration options + * @link http://docs.aws.amazon.com/aws-sdk-php/v2/guide/configuration.html#client-configuration-options */ public static function factory($config = array()) { @@ -75,7 +74,9 @@ class StsClient extends AbstractClient $client->getEventDispatcher()->addListener('command.before_send', function(Event $event) { /** @var AbstractCommand $command */ $command = $event['command']; - if ($command->getName() === 'AssumeRoleWithWebIdentity') { + if ($command->getName() === 'AssumeRoleWithWebIdentity' + || $command->getName() === 'AssumeRoleWithSAML' + ) { /** @var EventDispatcher $dispatcher */ $dispatcher = $command->getRequest()->getEventDispatcher(); foreach ($dispatcher->getListeners('request.before_send') as $listener) { diff --git a/inc/aws-sdk/Aws/Support/Exception/CaseCreationLimitExceededException.php b/inc/aws-sdk/Aws/Support/Exception/CaseCreationLimitExceededException.php index 4948b1a..9eaa3c6 100755 --- a/inc/aws-sdk/Aws/Support/Exception/CaseCreationLimitExceededException.php +++ b/inc/aws-sdk/Aws/Support/Exception/CaseCreationLimitExceededException.php @@ -17,6 +17,6 @@ namespace Aws\Support\Exception; /** - * Returned when you have exceeded the case creation limit for an account. + * The case creation limit for the account has been exceeded. */ class CaseCreationLimitExceededException extends SupportException {} diff --git a/inc/aws-sdk/Aws/Support/Exception/CaseIdNotFoundException.php b/inc/aws-sdk/Aws/Support/Exception/CaseIdNotFoundException.php index 8c77346..1b550df 100755 --- a/inc/aws-sdk/Aws/Support/Exception/CaseIdNotFoundException.php +++ b/inc/aws-sdk/Aws/Support/Exception/CaseIdNotFoundException.php @@ -17,6 +17,6 @@ namespace Aws\Support\Exception; /** - * Returned when the CaseId requested could not be located. + * The requested CaseId could not be located. */ class CaseIdNotFoundException extends SupportException {} diff --git a/inc/aws-sdk/Aws/Support/Exception/InternalServerErrorException.php b/inc/aws-sdk/Aws/Support/Exception/InternalServerErrorException.php index e1b343b..c1646bb 100755 --- a/inc/aws-sdk/Aws/Support/Exception/InternalServerErrorException.php +++ b/inc/aws-sdk/Aws/Support/Exception/InternalServerErrorException.php @@ -17,6 +17,6 @@ namespace Aws\Support\Exception; /** - * Returns HTTP error 500. + * An internal server error occurred. */ class InternalServerErrorException extends SupportException {} diff --git a/inc/aws-sdk/Aws/Support/Resources/support-2013-04-15.php b/inc/aws-sdk/Aws/Support/Resources/support-2013-04-15.php index 8e3c735..4431f61 100755 --- a/inc/aws-sdk/Aws/Support/Resources/support-2013-04-15.php +++ b/inc/aws-sdk/Aws/Support/Resources/support-2013-04-15.php @@ -31,6 +31,75 @@ return array ( ), ), 'operations' => array( + 'AddAttachmentsToSet' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'AddAttachmentsToSetResponse', + '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' => 'AWSSupport_20130415.AddAttachmentsToSet', + ), + 'attachmentSetId' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'attachments' => array( + 'required' => true, + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'Attachment', + 'type' => 'object', + 'properties' => array( + 'fileName' => array( + 'type' => 'string', + ), + 'data' => array( + 'type' => 'string', + 'filters' => array( + 'base64_encode', + ), + ), + ), + ), + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'An internal server error occurred.', + 'class' => 'InternalServerErrorException', + ), + array( + 'reason' => 'An attachment set with the specified ID could not be found.', + 'class' => 'AttachmentSetIdNotFoundException', + ), + array( + 'reason' => 'The expiration time of the attachment set has passed. The set expires 1 hour after it is created.', + 'class' => 'AttachmentSetExpiredException', + ), + array( + 'reason' => 'A limit for the size of an attachment set has been exceeded. The limits are 3 attachments and 5 MB per attachment.', + 'class' => 'AttachmentSetSizeLimitExceededException', + ), + array( + 'reason' => 'The limit for the number of attachment sets created in a short period of time has been exceeded.', + 'class' => 'AttachmentLimitExceededException', + ), + ), + ), 'AddCommunicationToCase' => array( 'httpMethod' => 'POST', 'uri' => '/', @@ -72,16 +141,28 @@ return array ( 'type' => 'string', ), ), + 'attachmentSetId' => array( + 'type' => 'string', + 'location' => 'json', + ), ), 'errorResponses' => array( array( - 'reason' => 'Returns HTTP error 500.', + 'reason' => 'An internal server error occurred.', 'class' => 'InternalServerErrorException', ), array( - 'reason' => 'Returned when the CaseId requested could not be located.', + 'reason' => 'The requested CaseId could not be located.', 'class' => 'CaseIdNotFoundException', ), + array( + 'reason' => 'An attachment set with the specified ID could not be found.', + 'class' => 'AttachmentSetIdNotFoundException', + ), + array( + 'reason' => 'The expiration time of the attachment set has passed. The set expires 1 hour after it is created.', + 'class' => 'AttachmentSetExpiredException', + ), ), ), 'CreateCase' => array( @@ -111,7 +192,6 @@ return array ( 'location' => 'json', ), 'serviceCode' => array( - 'required' => true, 'type' => 'string', 'location' => 'json', ), @@ -120,7 +200,6 @@ return array ( 'location' => 'json', ), 'categoryCode' => array( - 'required' => true, 'type' => 'string', 'location' => 'json', ), @@ -148,16 +227,70 @@ return array ( 'type' => 'string', 'location' => 'json', ), + 'attachmentSetId' => array( + 'type' => 'string', + 'location' => 'json', + ), ), 'errorResponses' => array( array( - 'reason' => 'Returns HTTP error 500.', + 'reason' => 'An internal server error occurred.', 'class' => 'InternalServerErrorException', ), array( - 'reason' => 'Returned when you have exceeded the case creation limit for an account.', + 'reason' => 'The case creation limit for the account has been exceeded.', 'class' => 'CaseCreationLimitExceededException', ), + array( + 'reason' => 'An attachment set with the specified ID could not be found.', + 'class' => 'AttachmentSetIdNotFoundException', + ), + array( + 'reason' => 'The expiration time of the attachment set has passed. The set expires 1 hour after it is created.', + 'class' => 'AttachmentSetExpiredException', + ), + ), + ), + 'DescribeAttachment' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'DescribeAttachmentResponse', + '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' => 'AWSSupport_20130415.DescribeAttachment', + ), + 'attachmentId' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'An internal server error occurred.', + 'class' => 'InternalServerErrorException', + ), + array( + 'reason' => 'The limit for the number of DescribeAttachment requests in a short period of time has been exceeded.', + 'class' => 'DescribeAttachmentLimitExceededException', + ), + array( + 'reason' => 'An attachment with the specified ID could not be found.', + 'class' => 'AttachmentIdNotFoundException', + ), ), ), 'DescribeCases' => array( @@ -221,14 +354,19 @@ return array ( 'type' => 'string', 'location' => 'json', ), + 'includeCommunications' => array( + 'type' => 'boolean', + 'format' => 'boolean-string', + 'location' => 'json', + ), ), 'errorResponses' => array( array( - 'reason' => 'Returns HTTP error 500.', + 'reason' => 'An internal server error occurred.', 'class' => 'InternalServerErrorException', ), array( - 'reason' => 'Returned when the CaseId requested could not be located.', + 'reason' => 'The requested CaseId could not be located.', 'class' => 'CaseIdNotFoundException', ), ), @@ -280,11 +418,11 @@ return array ( ), 'errorResponses' => array( array( - 'reason' => 'Returns HTTP error 500.', + 'reason' => 'An internal server error occurred.', 'class' => 'InternalServerErrorException', ), array( - 'reason' => 'Returned when the CaseId requested could not be located.', + 'reason' => 'The requested CaseId could not be located.', 'class' => 'CaseIdNotFoundException', ), ), @@ -326,7 +464,7 @@ return array ( ), 'errorResponses' => array( array( - 'reason' => 'Returns HTTP error 500.', + 'reason' => 'An internal server error occurred.', 'class' => 'InternalServerErrorException', ), ), @@ -359,7 +497,7 @@ return array ( ), 'errorResponses' => array( array( - 'reason' => 'Returns HTTP error 500.', + 'reason' => 'An internal server error occurred.', 'class' => 'InternalServerErrorException', ), ), @@ -397,7 +535,7 @@ return array ( ), 'errorResponses' => array( array( - 'reason' => 'Returns HTTP error 500.', + 'reason' => 'An internal server error occurred.', 'class' => 'InternalServerErrorException', ), ), @@ -435,7 +573,7 @@ return array ( ), 'errorResponses' => array( array( - 'reason' => 'Returns HTTP error 500.', + 'reason' => 'An internal server error occurred.', 'class' => 'InternalServerErrorException', ), ), @@ -473,7 +611,7 @@ return array ( ), 'errorResponses' => array( array( - 'reason' => 'Returns HTTP error 500.', + 'reason' => 'An internal server error occurred.', 'class' => 'InternalServerErrorException', ), ), @@ -507,7 +645,7 @@ return array ( ), 'errorResponses' => array( array( - 'reason' => 'Returns HTTP error 500.', + 'reason' => 'An internal server error occurred.', 'class' => 'InternalServerErrorException', ), ), @@ -541,7 +679,7 @@ return array ( ), 'errorResponses' => array( array( - 'reason' => 'Returns HTTP error 500.', + 'reason' => 'An internal server error occurred.', 'class' => 'InternalServerErrorException', ), ), @@ -574,17 +712,31 @@ return array ( ), 'errorResponses' => array( array( - 'reason' => 'Returns HTTP error 500.', + 'reason' => 'An internal server error occurred.', 'class' => 'InternalServerErrorException', ), array( - 'reason' => 'Returned when the CaseId requested could not be located.', + 'reason' => 'The requested CaseId could not be located.', 'class' => 'CaseIdNotFoundException', ), ), ), ), 'models' => array( + 'AddAttachmentsToSetResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'attachmentSetId' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'expiryTime' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + ), 'AddCommunicationToCaseResponse' => array( 'type' => 'object', 'additionalProperties' => true, @@ -605,6 +757,27 @@ return array ( ), ), ), + 'DescribeAttachmentResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'attachment' => array( + 'type' => 'object', + 'location' => 'json', + 'properties' => array( + 'fileName' => array( + 'type' => 'string', + ), + 'data' => array( + 'type' => 'string', + 'filters' => array( + 'base64_decode', + ), + ), + ), + ), + ), + ), 'DescribeCasesResponse' => array( 'type' => 'object', 'additionalProperties' => true, @@ -664,6 +837,21 @@ return array ( 'timeCreated' => array( 'type' => 'string', ), + 'attachmentSet' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'AttachmentDetails', + 'type' => 'object', + 'properties' => array( + 'attachmentId' => array( + 'type' => 'string', + ), + 'fileName' => array( + 'type' => 'string', + ), + ), + ), + ), ), ), ), @@ -714,6 +902,21 @@ return array ( 'timeCreated' => array( 'type' => 'string', ), + 'attachmentSet' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'AttachmentDetails', + 'type' => 'object', + 'properties' => array( + 'attachmentId' => array( + 'type' => 'string', + ), + 'fileName' => array( + 'type' => 'string', + ), + ), + ), + ), ), ), ), @@ -1022,34 +1225,32 @@ return array ( ), ), 'iterators' => array( - 'operations' => array( - 'DescribeCases' => array( - 'token_param' => 'nextToken', - 'token_key' => 'nextToken', - 'limit_key' => 'maxResults', - 'result_key' => 'cases', - ), - 'DescribeCommunications' => array( - 'token_param' => 'nextToken', - 'token_key' => 'nextToken', - 'limit_key' => 'maxResults', - 'result_key' => 'communications', - ), - 'DescribeServices' => array( - 'result_key' => 'services', - ), - 'DescribeTrustedAdvisorCheckRefreshStatuses' => array( - 'result_key' => 'statuses', - ), - 'DescribeTrustedAdvisorCheckSummaries' => array( - 'result_key' => 'summaries', - ), - 'DescribeSeverityLevels' => array( - 'result_key' => 'severityLevelsList', - ), - 'DescribeTrustedAdvisorChecks' => array( - 'result_key' => 'checks', - ), + 'DescribeCases' => array( + 'input_token' => 'nextToken', + 'output_token' => 'nextToken', + 'limit_key' => 'maxResults', + 'result_key' => 'cases', + ), + 'DescribeCommunications' => array( + 'input_token' => 'nextToken', + 'output_token' => 'nextToken', + 'limit_key' => 'maxResults', + 'result_key' => 'communications', + ), + 'DescribeServices' => array( + 'result_key' => 'services', + ), + 'DescribeTrustedAdvisorCheckRefreshStatuses' => array( + 'result_key' => 'statuses', + ), + 'DescribeTrustedAdvisorCheckSummaries' => array( + 'result_key' => 'summaries', + ), + 'DescribeSeverityLevels' => array( + 'result_key' => 'severityLevelsList', + ), + 'DescribeTrustedAdvisorChecks' => array( + 'result_key' => 'checks', ), ), ); diff --git a/inc/aws-sdk/Aws/Support/SupportClient.php b/inc/aws-sdk/Aws/Support/SupportClient.php index cf978e5..18b4a0b 100755 --- a/inc/aws-sdk/Aws/Support/SupportClient.php +++ b/inc/aws-sdk/Aws/Support/SupportClient.php @@ -27,8 +27,10 @@ use Guzzle\Service\Resource\ResourceIteratorInterface; /** * Client to interact with AWS Support * + * @method Model addAttachmentsToSet(array $args = array()) {@command Support AddAttachmentsToSet} * @method Model addCommunicationToCase(array $args = array()) {@command Support AddCommunicationToCase} * @method Model createCase(array $args = array()) {@command Support CreateCase} + * @method Model describeAttachment(array $args = array()) {@command Support DescribeAttachment} * @method Model describeCases(array $args = array()) {@command Support DescribeCases} * @method Model describeCommunications(array $args = array()) {@command Support DescribeCommunications} * @method Model describeServices(array $args = array()) {@command Support DescribeServices} @@ -47,8 +49,8 @@ use Guzzle\Service\Resource\ResourceIteratorInterface; * @method ResourceIteratorInterface getDescribeSeverityLevelsIterator(array $args = array()) The input array uses the parameters of the DescribeSeverityLevels operation * @method ResourceIteratorInterface getDescribeTrustedAdvisorChecksIterator(array $args = array()) The input array uses the parameters of the DescribeTrustedAdvisorChecks operation * - * @link http://docs.aws.amazon.com/aws-sdk-php/guide/latest/service-support.html User guide - * @link http://docs.aws.amazon.com/aws-sdk-php/latest/class-Aws.Support.SupportClient.html API docs + * @link http://docs.aws.amazon.com/aws-sdk-php/v2/guide/service-support.html User guide + * @link http://docs.aws.amazon.com/aws-sdk-php/v2/api/class-Aws.Support.SupportClient.html API docs */ class SupportClient extends AbstractClient { @@ -60,7 +62,7 @@ class SupportClient extends AbstractClient * @param array|Collection $config Client configuration data * * @return self - * @see \Aws\Common\Client\DefaultClient for a list of available configuration options + * @link http://docs.aws.amazon.com/aws-sdk-php/v2/guide/configuration.html#client-configuration-options */ public static function factory($config = array()) { diff --git a/inc/aws-sdk/Aws/Swf/Resources/swf-2012-01-25.php b/inc/aws-sdk/Aws/Swf/Resources/swf-2012-01-25.php index 8e50fe9..bed73df 100755 --- a/inc/aws-sdk/Aws/Swf/Resources/swf-2012-01-25.php +++ b/inc/aws-sdk/Aws/Swf/Resources/swf-2012-01-25.php @@ -66,6 +66,11 @@ return array ( 'https' => true, 'hostname' => 'swf.sa-east-1.amazonaws.com', ), + 'cn-north-1' => array( + 'http' => false, + 'https' => true, + 'hostname' => 'swf.cn-north-1.amazonaws.com.cn', + ), 'us-gov-west-1' => array( 'http' => false, 'https' => true, @@ -194,14 +199,6 @@ return array ( 'status' => array( 'required' => true, 'type' => 'string', - 'enum' => array( - 'COMPLETED', - 'FAILED', - 'CANCELED', - 'TERMINATED', - 'CONTINUED_AS_NEW', - 'TIMED_OUT', - ), ), ), ), @@ -926,10 +923,6 @@ return array ( 'required' => true, 'type' => 'string', 'location' => 'json', - 'enum' => array( - 'REGISTERED', - 'DEPRECATED', - ), ), 'nextPageToken' => array( 'type' => 'string', @@ -1051,14 +1044,6 @@ return array ( 'status' => array( 'required' => true, 'type' => 'string', - 'enum' => array( - 'COMPLETED', - 'FAILED', - 'CANCELED', - 'TERMINATED', - 'CONTINUED_AS_NEW', - 'TIMED_OUT', - ), ), ), ), @@ -1147,10 +1132,6 @@ return array ( 'required' => true, 'type' => 'string', 'location' => 'json', - 'enum' => array( - 'REGISTERED', - 'DEPRECATED', - ), ), 'maximumPageSize' => array( 'type' => 'numeric', @@ -1327,10 +1308,6 @@ return array ( 'required' => true, 'type' => 'string', 'location' => 'json', - 'enum' => array( - 'REGISTERED', - 'DEPRECATED', - ), ), 'nextPageToken' => array( 'type' => 'string', @@ -1612,6 +1589,11 @@ return array ( ), ), ), + 'defaultTaskPriority' => array( + 'type' => 'string', + 'location' => 'json', + 'maxLength' => 11, + ), 'defaultTaskScheduleToStartTimeout' => array( 'type' => 'string', 'location' => 'json', @@ -1767,14 +1749,14 @@ return array ( ), ), ), + 'defaultTaskPriority' => array( + 'type' => 'string', + 'location' => 'json', + 'maxLength' => 11, + ), 'defaultChildPolicy' => array( 'type' => 'string', 'location' => 'json', - 'enum' => array( - 'TERMINATE', - 'REQUEST_CANCEL', - 'ABANDON', - ), ), ), 'errorResponses' => array( @@ -2026,20 +2008,6 @@ return array ( 'decisionType' => array( 'required' => true, 'type' => 'string', - 'enum' => array( - 'ScheduleActivityTask', - 'RequestCancelActivityTask', - 'CompleteWorkflowExecution', - 'FailWorkflowExecution', - 'CancelWorkflowExecution', - 'ContinueAsNewWorkflowExecution', - 'RecordMarker', - 'StartTimer', - 'CancelTimer', - 'SignalExternalWorkflowExecution', - 'RequestCancelExternalWorkflowExecution', - 'StartChildWorkflowExecution', - ), ), 'scheduleActivityTaskDecisionAttributes' => array( 'type' => 'object', @@ -2091,6 +2059,10 @@ return array ( ), ), ), + 'taskPriority' => array( + 'type' => 'string', + 'maxLength' => 11, + ), 'scheduleToStartTimeout' => array( 'type' => 'string', 'maxLength' => 8, @@ -2169,17 +2141,16 @@ return array ( ), ), ), + 'taskPriority' => array( + 'type' => 'string', + 'maxLength' => 11, + ), 'taskStartToCloseTimeout' => array( 'type' => 'string', 'maxLength' => 8, ), 'childPolicy' => array( 'type' => 'string', - 'enum' => array( - 'TERMINATE', - 'REQUEST_CANCEL', - 'ABANDON', - ), ), 'tagList' => array( 'type' => 'array', @@ -2343,17 +2314,16 @@ return array ( ), ), ), + 'taskPriority' => array( + 'type' => 'string', + 'maxLength' => 11, + ), 'taskStartToCloseTimeout' => array( 'type' => 'string', 'maxLength' => 8, ), 'childPolicy' => array( 'type' => 'string', - 'enum' => array( - 'TERMINATE', - 'REQUEST_CANCEL', - 'ABANDON', - ), ), 'tagList' => array( 'type' => 'array', @@ -2517,6 +2487,11 @@ return array ( ), ), ), + 'taskPriority' => array( + 'type' => 'string', + 'location' => 'json', + 'maxLength' => 11, + ), 'input' => array( 'type' => 'string', 'location' => 'json', @@ -2546,11 +2521,6 @@ return array ( 'childPolicy' => array( 'type' => 'string', 'location' => 'json', - 'enum' => array( - 'TERMINATE', - 'REQUEST_CANCEL', - 'ABANDON', - ), ), ), 'errorResponses' => array( @@ -2632,11 +2602,6 @@ return array ( 'childPolicy' => array( 'type' => 'string', 'location' => 'json', - 'enum' => array( - 'TERMINATE', - 'REQUEST_CANCEL', - 'ABANDON', - ), ), ), 'errorResponses' => array( @@ -2735,6 +2700,9 @@ return array ( ), ), ), + 'defaultTaskPriority' => array( + 'type' => 'string', + ), 'defaultTaskScheduleToStartTimeout' => array( 'type' => 'string', ), @@ -2858,6 +2826,9 @@ return array ( ), ), ), + 'taskPriority' => array( + 'type' => 'string', + ), 'childPolicy' => array( 'type' => 'string', ), @@ -2942,6 +2913,9 @@ return array ( ), ), ), + 'defaultTaskPriority' => array( + 'type' => 'string', + ), 'defaultChildPolicy' => array( 'type' => 'string', ), @@ -3010,6 +2984,9 @@ return array ( 'type' => 'string', ), ), + 'taskPriority' => array( + 'type' => 'string', + ), 'continuedExecutionRunId' => array( 'type' => 'string', ), @@ -3132,6 +3109,9 @@ return array ( ), ), ), + 'taskPriority' => array( + 'type' => 'string', + ), 'taskStartToCloseTimeout' => array( 'type' => 'string', ), @@ -3219,6 +3199,9 @@ return array ( ), ), ), + 'taskPriority' => array( + 'type' => 'string', + ), 'startToCloseTimeout' => array( 'type' => 'string', ), @@ -3303,6 +3286,9 @@ return array ( ), ), ), + 'taskPriority' => array( + 'type' => 'string', + ), 'decisionTaskCompletedEventId' => array( 'type' => 'numeric', ), @@ -3527,6 +3513,9 @@ return array ( ), ), ), + 'taskPriority' => array( + 'type' => 'string', + ), 'decisionTaskCompletedEventId' => array( 'type' => 'numeric', ), @@ -4315,6 +4304,9 @@ return array ( 'type' => 'string', ), ), + 'taskPriority' => array( + 'type' => 'string', + ), 'continuedExecutionRunId' => array( 'type' => 'string', ), @@ -4437,6 +4429,9 @@ return array ( ), ), ), + 'taskPriority' => array( + 'type' => 'string', + ), 'taskStartToCloseTimeout' => array( 'type' => 'string', ), @@ -4524,6 +4519,9 @@ return array ( ), ), ), + 'taskPriority' => array( + 'type' => 'string', + ), 'startToCloseTimeout' => array( 'type' => 'string', ), @@ -4608,6 +4606,9 @@ return array ( ), ), ), + 'taskPriority' => array( + 'type' => 'string', + ), 'decisionTaskCompletedEventId' => array( 'type' => 'numeric', ), @@ -4832,6 +4833,9 @@ return array ( ), ), ), + 'taskPriority' => array( + 'type' => 'string', + ), 'decisionTaskCompletedEventId' => array( 'type' => 'numeric', ), @@ -5317,49 +5321,47 @@ return array ( ), ), 'iterators' => array( - 'operations' => array( - 'GetWorkflowExecutionHistory' => array( - 'token_param' => 'nextPageToken', - 'token_key' => 'nextPageToken', - 'limit_key' => 'maximumPageSize', - 'result_key' => 'events', - ), - 'ListActivityTypes' => array( - 'token_param' => 'nextPageToken', - 'token_key' => 'nextPageToken', - 'limit_key' => 'maximumPageSize', - 'result_key' => 'typeInfos', - ), - 'ListClosedWorkflowExecutions' => array( - 'token_param' => 'nextPageToken', - 'token_key' => 'nextPageToken', - 'limit_key' => 'maximumPageSize', - 'result_key' => 'executionInfos', - ), - 'ListDomains' => array( - 'token_param' => 'nextPageToken', - 'token_key' => 'nextPageToken', - 'limit_key' => 'maximumPageSize', - 'result_key' => 'domainInfos', - ), - 'ListOpenWorkflowExecutions' => array( - 'token_param' => 'nextPageToken', - 'token_key' => 'nextPageToken', - 'limit_key' => 'maximumPageSize', - 'result_key' => 'executionInfos', - ), - 'ListWorkflowTypes' => array( - 'token_param' => 'nextPageToken', - 'token_key' => 'nextPageToken', - 'limit_key' => 'maximumPageSize', - 'result_key' => 'typeInfos', - ), - 'PollForDecisionTask' => array( - 'token_param' => 'nextPageToken', - 'token_key' => 'nextPageToken', - 'limit_key' => 'maximumPageSize', - 'result_key' => 'events', - ), + 'GetWorkflowExecutionHistory' => array( + 'limit_key' => 'maximumPageSize', + 'input_token' => 'nextPageToken', + 'output_token' => 'nextPageToken', + 'result_key' => 'events', + ), + 'ListActivityTypes' => array( + 'limit_key' => 'maximumPageSize', + 'input_token' => 'nextPageToken', + 'output_token' => 'nextPageToken', + 'result_key' => 'typeInfos', + ), + 'ListClosedWorkflowExecutions' => array( + 'limit_key' => 'maximumPageSize', + 'input_token' => 'nextPageToken', + 'output_token' => 'nextPageToken', + 'result_key' => 'executionInfos', + ), + 'ListDomains' => array( + 'limit_key' => 'maximumPageSize', + 'input_token' => 'nextPageToken', + 'output_token' => 'nextPageToken', + 'result_key' => 'domainInfos', + ), + 'ListOpenWorkflowExecutions' => array( + 'limit_key' => 'maximumPageSize', + 'input_token' => 'nextPageToken', + 'output_token' => 'nextPageToken', + 'result_key' => 'executionInfos', + ), + 'ListWorkflowTypes' => array( + 'limit_key' => 'maximumPageSize', + 'input_token' => 'nextPageToken', + 'output_token' => 'nextPageToken', + 'result_key' => 'typeInfos', + ), + 'PollForDecisionTask' => array( + 'limit_key' => 'maximumPageSize', + 'input_token' => 'nextPageToken', + 'output_token' => 'nextPageToken', + 'result_key' => 'events', ), ), ); diff --git a/inc/aws-sdk/Aws/Swf/SwfClient.php b/inc/aws-sdk/Aws/Swf/SwfClient.php index a8a19de..4233461 100755 --- a/inc/aws-sdk/Aws/Swf/SwfClient.php +++ b/inc/aws-sdk/Aws/Swf/SwfClient.php @@ -66,8 +66,8 @@ use Guzzle\Service\Resource\ResourceIteratorInterface; * @method ResourceIteratorInterface getListWorkflowTypesIterator(array $args = array()) The input array uses the parameters of the ListWorkflowTypes operation * @method ResourceIteratorInterface getPollForDecisionTaskIterator(array $args = array()) The input array uses the parameters of the PollForDecisionTask operation * - * @link http://docs.aws.amazon.com/aws-sdk-php/guide/latest/service-swf.html User guide - * @link http://docs.aws.amazon.com/aws-sdk-php/latest/class-Aws.Swf.SwfClient.html API docs + * @link http://docs.aws.amazon.com/aws-sdk-php/v2/guide/service-swf.html User guide + * @link http://docs.aws.amazon.com/aws-sdk-php/v2/api/class-Aws.Swf.SwfClient.html API docs */ class SwfClient extends AbstractClient { @@ -79,7 +79,7 @@ class SwfClient extends AbstractClient * @param array|Collection $config Client configuration data * * @return self - * @see \Aws\Common\Client\DefaultClient for a list of available configuration options + * @link http://docs.aws.amazon.com/aws-sdk-php/v2/guide/configuration.html#client-configuration-options */ public static function factory($config = array()) { diff --git a/inc/aws-sdk/Aws/WorkSpaces/Exception/WorkSpacesException.php b/inc/aws-sdk/Aws/WorkSpaces/Exception/WorkSpacesException.php new file mode 100644 index 0000000..19e9a41 --- /dev/null +++ b/inc/aws-sdk/Aws/WorkSpaces/Exception/WorkSpacesException.php @@ -0,0 +1,10 @@ + '2015-04-08', + 'endpointPrefix' => 'workspaces', + 'serviceFullName' => 'Amazon WorkSpaces', + 'serviceType' => 'json', + 'jsonVersion' => '1.1', + 'targetPrefix' => 'WorkspacesService.', + 'signatureVersion' => 'v4', + 'namespace' => 'WorkSpaces', + 'operations' => array( + 'CreateWorkspaces' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'CreateWorkspacesResult', + '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' => 'WorkspacesService.CreateWorkspaces', + ), + 'Workspaces' => array( + 'required' => true, + 'type' => 'array', + 'location' => 'json', + 'minItems' => 1, + 'maxItems' => 25, + 'items' => array( + 'name' => 'WorkspaceRequest', + 'type' => 'object', + 'properties' => array( + 'DirectoryId' => array( + 'required' => true, + 'type' => 'string', + ), + 'UserName' => array( + 'required' => true, + 'type' => 'string', + 'minLength' => 1, + 'maxLength' => 63, + ), + 'BundleId' => array( + 'required' => true, + 'type' => 'string', + ), + ), + ), + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'Your resource limits have been exceeded.', + 'class' => 'ResourceLimitExceededException', + ), + ), + ), + 'DescribeWorkspaceBundles' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'DescribeWorkspaceBundlesResult', + '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' => 'WorkspacesService.DescribeWorkspaceBundles', + ), + 'BundleIds' => array( + 'type' => 'array', + 'location' => 'json', + 'minItems' => 1, + 'maxItems' => 25, + 'items' => array( + 'name' => 'BundleId', + 'type' => 'string', + ), + ), + 'Owner' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'NextToken' => array( + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 63, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'One or more parameter values are not valid.', + 'class' => 'InvalidParameterValuesException', + ), + ), + ), + 'DescribeWorkspaceDirectories' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'DescribeWorkspaceDirectoriesResult', + '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' => 'WorkspacesService.DescribeWorkspaceDirectories', + ), + 'DirectoryIds' => array( + 'type' => 'array', + 'location' => 'json', + 'minItems' => 1, + 'maxItems' => 25, + 'items' => array( + 'name' => 'DirectoryId', + 'type' => 'string', + ), + ), + 'NextToken' => array( + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 63, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'One or more parameter values are not valid.', + 'class' => 'InvalidParameterValuesException', + ), + ), + ), + 'DescribeWorkspaces' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'DescribeWorkspacesResult', + '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' => 'WorkspacesService.DescribeWorkspaces', + ), + 'WorkspaceIds' => array( + 'type' => 'array', + 'location' => 'json', + 'minItems' => 1, + 'maxItems' => 25, + 'items' => array( + 'name' => 'WorkspaceId', + 'type' => 'string', + ), + ), + 'DirectoryId' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'UserName' => array( + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 63, + ), + 'BundleId' => array( + 'type' => 'string', + 'location' => 'json', + ), + 'Limit' => array( + 'type' => 'numeric', + 'location' => 'json', + 'minimum' => 1, + 'maximum' => 25, + ), + 'NextToken' => array( + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 63, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'One or more parameter values are not valid.', + 'class' => 'InvalidParameterValuesException', + ), + array( + 'reason' => 'The specified resource is not available.', + 'class' => 'ResourceUnavailableException', + ), + ), + ), + 'RebootWorkspaces' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'RebootWorkspacesResult', + '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' => 'WorkspacesService.RebootWorkspaces', + ), + 'RebootWorkspaceRequests' => array( + 'required' => true, + 'type' => 'array', + 'location' => 'json', + 'minItems' => 1, + 'maxItems' => 25, + 'items' => array( + 'name' => 'RebootRequest', + 'type' => 'object', + 'properties' => array( + 'WorkspaceId' => array( + 'required' => true, + 'type' => 'string', + ), + ), + ), + ), + ), + ), + 'RebuildWorkspaces' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'RebuildWorkspacesResult', + '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' => 'WorkspacesService.RebuildWorkspaces', + ), + 'RebuildWorkspaceRequests' => array( + 'required' => true, + 'type' => 'array', + 'location' => 'json', + 'minItems' => 1, + 'maxItems' => 1, + 'items' => array( + 'name' => 'RebuildRequest', + 'type' => 'object', + 'properties' => array( + 'WorkspaceId' => array( + 'required' => true, + 'type' => 'string', + ), + ), + ), + ), + ), + ), + 'TerminateWorkspaces' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'TerminateWorkspacesResult', + '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' => 'WorkspacesService.TerminateWorkspaces', + ), + 'TerminateWorkspaceRequests' => array( + 'required' => true, + 'type' => 'array', + 'location' => 'json', + 'minItems' => 1, + 'maxItems' => 25, + 'items' => array( + 'name' => 'TerminateRequest', + 'type' => 'object', + 'properties' => array( + 'WorkspaceId' => array( + 'required' => true, + 'type' => 'string', + ), + ), + ), + ), + ), + ), + ), + 'models' => array( + 'CreateWorkspacesResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'FailedRequests' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'FailedCreateWorkspaceRequest', + 'type' => 'object', + 'properties' => array( + 'WorkspaceRequest' => array( + 'type' => 'object', + 'properties' => array( + 'DirectoryId' => array( + 'type' => 'string', + ), + 'UserName' => array( + 'type' => 'string', + ), + 'BundleId' => array( + 'type' => 'string', + ), + ), + ), + 'ErrorCode' => array( + 'type' => 'string', + ), + 'ErrorMessage' => array( + 'type' => 'string', + ), + ), + ), + ), + 'PendingRequests' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'Workspace', + 'type' => 'object', + 'properties' => array( + 'WorkspaceId' => array( + 'type' => 'string', + ), + 'DirectoryId' => array( + 'type' => 'string', + ), + 'UserName' => array( + 'type' => 'string', + ), + 'IpAddress' => array( + 'type' => 'string', + ), + 'State' => array( + 'type' => 'string', + ), + 'BundleId' => array( + 'type' => 'string', + ), + 'SubnetId' => array( + 'type' => 'string', + ), + 'ErrorMessage' => array( + 'type' => 'string', + ), + 'ErrorCode' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + 'DescribeWorkspaceBundlesResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'Bundles' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'WorkspaceBundle', + 'type' => 'object', + 'properties' => array( + 'BundleId' => array( + 'type' => 'string', + ), + 'Name' => array( + 'type' => 'string', + ), + 'Owner' => array( + 'type' => 'string', + ), + 'Description' => array( + 'type' => 'string', + ), + 'UserStorage' => array( + 'type' => 'object', + 'properties' => array( + 'Capacity' => array( + 'type' => 'string', + ), + ), + ), + 'ComputeType' => array( + 'type' => 'object', + 'properties' => array( + 'Name' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + 'NextToken' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + ), + 'DescribeWorkspaceDirectoriesResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'Directories' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'WorkspaceDirectory', + 'type' => 'object', + 'properties' => array( + 'DirectoryId' => array( + 'type' => 'string', + ), + 'Alias' => array( + 'type' => 'string', + ), + 'DirectoryName' => array( + 'type' => 'string', + ), + 'RegistrationCode' => array( + 'type' => 'string', + ), + 'SubnetIds' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'SubnetId', + 'type' => 'string', + ), + ), + 'DnsIpAddresses' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'IpAddress', + 'type' => 'string', + ), + ), + 'CustomerUserName' => array( + 'type' => 'string', + ), + 'IamRoleId' => array( + 'type' => 'string', + ), + 'DirectoryType' => array( + 'type' => 'string', + ), + 'WorkspaceSecurityGroupId' => array( + 'type' => 'string', + ), + 'State' => array( + 'type' => 'string', + ), + 'WorkspaceCreationProperties' => array( + 'type' => 'object', + 'properties' => array( + 'EnableWorkDocs' => array( + 'type' => 'boolean', + ), + 'EnableInternetAccess' => array( + 'type' => 'boolean', + ), + 'DefaultOu' => array( + 'type' => 'string', + ), + 'CustomSecurityGroupId' => array( + 'type' => 'string', + ), + 'UserEnabledAsLocalAdministrator' => array( + 'type' => 'boolean', + ), + ), + ), + ), + ), + ), + 'NextToken' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + ), + 'DescribeWorkspacesResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'Workspaces' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'Workspace', + 'type' => 'object', + 'properties' => array( + 'WorkspaceId' => array( + 'type' => 'string', + ), + 'DirectoryId' => array( + 'type' => 'string', + ), + 'UserName' => array( + 'type' => 'string', + ), + 'IpAddress' => array( + 'type' => 'string', + ), + 'State' => array( + 'type' => 'string', + ), + 'BundleId' => array( + 'type' => 'string', + ), + 'SubnetId' => array( + 'type' => 'string', + ), + 'ErrorMessage' => array( + 'type' => 'string', + ), + 'ErrorCode' => array( + 'type' => 'string', + ), + ), + ), + ), + 'NextToken' => array( + 'type' => 'string', + 'location' => 'json', + ), + ), + ), + 'RebootWorkspacesResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'FailedRequests' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'FailedWorkspaceChangeRequest', + 'type' => 'object', + 'properties' => array( + 'WorkspaceId' => array( + 'type' => 'string', + ), + 'ErrorCode' => array( + 'type' => 'string', + ), + 'ErrorMessage' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + 'RebuildWorkspacesResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'FailedRequests' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'FailedWorkspaceChangeRequest', + 'type' => 'object', + 'properties' => array( + 'WorkspaceId' => array( + 'type' => 'string', + ), + 'ErrorCode' => array( + 'type' => 'string', + ), + 'ErrorMessage' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + 'TerminateWorkspacesResult' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'FailedRequests' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'FailedWorkspaceChangeRequest', + 'type' => 'object', + 'properties' => array( + 'WorkspaceId' => array( + 'type' => 'string', + ), + 'ErrorCode' => array( + 'type' => 'string', + ), + 'ErrorMessage' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + ), +); diff --git a/inc/aws-sdk/Aws/WorkSpaces/WorkSpacesClient.php b/inc/aws-sdk/Aws/WorkSpaces/WorkSpacesClient.php new file mode 100644 index 0000000..b14d3dd --- /dev/null +++ b/inc/aws-sdk/Aws/WorkSpaces/WorkSpacesClient.php @@ -0,0 +1,51 @@ +setConfig($config) + ->setConfigDefaults(array( + Options::VERSION => self::LATEST_API_VERSION, + Options::SERVICE_DESCRIPTION => __DIR__ . '/Resources/workspaces-%s.php' + )) + ->setExceptionParser(new JsonQueryExceptionParser()) + ->build(); + } +} -- GitLab